[英]Help with mod_rewrite rule for dynamic url
嗯.. mod_rewrite讓我感到愚蠢。 我只是還沒有動腦筋。 :/
我有這個網址:
http://example.com/a/name/
...我想在這里指出:
http://example.com/a/index.php?id=name
...其中name
是作為id
參數傳遞給index.php
name
。
我嘗試過的任何結果都會導致404或500。.:(
如果希望尾部的斜杠為可選,則必須排除將請求重寫到的文件。 否則,您將有一個很好的無限遞歸。
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/a/index\.php$
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L]
在這里,任何以/a/…
開頭但不是/a/index.php
都將重寫為/a/index.php
。
但是,如果必須在結尾加上斜杠,則無需排除目標文件:
RewriteEngine on
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L]
首先開始:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L]
如果一個重寫教程對您不起作用,請嘗試另一個 。
編輯:根據Gumbo的建議排除了index.php
也許有些類似的東西
RewriteEngine on
RewriteBase /a/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA]
會成功的
我建議您看一下以下URL:
http://www.dracos.co.uk/code/apache-rewrite-problem/
提出的解決方案可以使用,但URL中有一些警告說明,主要涉及? 和#放在網址本身中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.