簡體   English   中英

htaccess重寫條件不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM