[英]htaccess rewrite condition not working
我正在使用我網站的URL。 我剛剛重寫了URL From
http://www.website.com/index.php?url=some-text
至
http://www.website.com/some-text
為此,我正在使用以下.htaccess代碼
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
現在,我想在URL中添加另一個可變page number
。
http://www.website.com/index.php?url=some-text&page=1
我想像這樣重寫它
http://www.website.com/some-text/1/
AND
http://www.website.com/some-text/1
我嘗試了以下代碼,但由於某些原因它無法正常工作,它向我顯示服務器錯誤。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)/(.*)$ index.php?url=$1&page=$2 [L,QSA]
RewriteRule ^(.*)/(.*)/$ index.php?url=$1&page=$2 [L,QSA]
您不需要2條新規則。 只需一個帶有可選的/
就足夠了。 您的完整代碼:
Options +SymLinksIfOwnerMatch -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?url=$1&page=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/?$ index.php?url=$1 [L,QSA]
新代碼中的另一個問題是RewriteCond
不會被應用到最后一個RewriteRule
因為它們僅適用於下一個RewriteRule
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.