1
我的.htaccess包含:mod_rewrite的:我的鏈接重定向後不再工作
RewriteEngine On
# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ /subdirectory/$1 [L,R=301]
# capture user name
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(\w+)$ index.php?user=$1
ErrorDocument 404 /subdirectory/index.php
我的目的是:
- 做出漂亮的URL就像http://domain.com/subdirectory/james/ =>http://domain.com/subdirectory/index.php?user=james
- 忽略尾隨斜線所以該/詹姆斯和/詹姆斯/將工作
- 重定向所有訪問不存在的文件夾/文件到/subdirectory/index.php
所有這一切工作正常,但是當有人進入像URL我的問題是...
http://domain.com/subdirectory/james/yyy
http://domain.com/subdirectory/james/yyy/zzz
http://domain.com/subdirectory/james/yyy/zzz/nonexistent.html
...他們重定向到我的/subdirectory/index.php,在索引中的所有鏈接.PHP像:
<link rel="stylesheet" type="text/css" href="something.css">
<script type="text/javascript" src="lib/something.js"></script>
<img src="images/picture.jpg">
...獲取詬病的喜歡的東西:
<link rel="stylesheet" type="text/css" href="/james/yyy/zzz/something.css">
<script type="text/javascript" src="/james/yyy/zzz/lib/something.js"></script>
<img src="/james/yyy/zzz/images/picture.jpg">
什麼我可以做錯嗎?我對尾部斜線的處理是否正確?我使用ErrorDocument的正確方法來做到這一點嗎?
這是我第一次嘗試使用.htaccess和mod_rewrite。這也是我的第一個Stackoverflow問題。
謝謝!