我想我與匹配模式的所有URL作爲我.htacess規則不工作
/released/2013/iron-man
/released/2013/abc-of-death
/released/2012/saw6
被重定向到
/released/1.php
可以和我的名字爲好。
我加入這個規則我.htacess文件,但它不工作
RewriteRule ^released/([0-9]+)/?$ /released/1.php?id=$1 [L]
我想我與匹配模式的所有URL作爲我.htacess規則不工作
/released/2013/iron-man
/released/2013/abc-of-death
/released/2012/saw6
被重定向到
/released/1.php
可以和我的名字爲好。
我加入這個規則我.htacess文件,但它不工作
RewriteRule ^released/([0-9]+)/?$ /released/1.php?id=$1 [L]
尾隨的問號可選結局/這是不是你想要的相匹配。
^released/([0-9]+)/iron-man$
不指定特定的外部域
或
RewriteRule ^released/([0-9]+)/(.+)$ /released/1.php?id=$1+$2
我很確定他不希望匹配的電影名稱顯示爲'id'參數的一部分。 –
我已經加入
甲RewriteRule
始終在內部執行。要做到這一點重定向如您所要求在最後添加[R=301]
- 或302,303或307取決於您需要哪種類型的重定向,但通常301
是好的。
除此之外,您所寫的正則表達式不允許使用擴展網址 - 刪除尾隨$
。在此之後,/?
部分是無意義的,所以你可以刪除它。
線會閱讀:
RewriteRule ^released/([0-9]+) /released/1.php?id=$1 [L,R=301]
問題是,你有第二個斜槓後$
但你的電影名稱,如iron-man
等第二斜線後刪除$
因爲你是不匹配的。
確認mod_rewrite和的.htaccess通過httpd.conf
啓用,然後把這個代碼在你.htaccess
下DOCUMENT_ROOT
目錄:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(released)/([0-9]+)/ /$1/1.php?id=$2 [L,QSA,NC]
爲什麼在這種情況下'RewriteCond'行?對於通用重定向非常沒有意義 - 由於文件系統檢查,它將對性能產生負面影響並且毫無用處。 –
@NielsKeurentjes:如果這是一個真正的目錄'/ released/100 /',那麼這個規則不應該被忽略。 – anubhava
問題說*「我的所有網址」*。我只是遵循他所說的話。 –
首先,什麼服務器和Web服務器,你上運行?其次是如果您使用的是Apache,則啓用mod_rewrite? –
是的,我使用的是Apache –