您可以創建在.htaccess的路由電影的網址movie.php如下重寫規則:
電影/ 123:
RewriteRule ^movie/(\d+)$ movie.php?id=$1 [L]
電影/ ID/123:
RewriteRule ^movie/id/(\d+)$ movie.php?id=$1 [L]
電影/標題-的-電影:
RewriteRule ^movie/(\S+)$ movie.php?slug=$1 [L]
電影/標題/標題-的-電影:
RewriteRule ^movie/title/(\S+)$ movie.php?slug=$1 [L]
組合影片/ 123 /標題-的-電影:
RewriteRule ^movie/(\d+)/(\S+)$ movie.php?id=$1&slug=$2 [L]
編輯:加入全htaccess的例子爲1如果URL不適用於電影,則最多需要2個額外的可選參數,並在index.php上有一個備用參數。
Options -Indexes
IndexIgnore */*
Options FollowSymLinks
AddDefaultCharset utf-8
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^movie/([^/]+)/?([^/]*)/?([^/]*)$ movie.php?param1=$1¶m2=$2¶m3=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . index.php [L]
</IfModule>
^
從頭匹配
$
匹配,直到結束
?
爲0或1發生
+
1個或多個
*
爲0或多次出現
如果url規則不匹配,文件不存在,那麼它會將url路由到index.php,但是您可以刪除最後一部分如果你不想那樣。
我試過其中的一些,但沒有工作。你能提供完整的「塊」嗎?我喜歡動態的方式而不是通配符方式,因爲有些頁面會允許更多的變量。另外我該如何解釋選項參數?如果一個頁面最多可以有3個參數,但最小值是1?我需要單獨的規則嗎?謝謝! :) – jkingaround
我添加了一個完整的.htaccess示例。這些規則考慮了例如電影/第一/第二/第三從開始到結束。如果你在「電影」之前有一個url部分,你還需要將它添加到規則中,或者在開始時省略'^'。 – JonathanStevens