我想在我的.htaccess中使用URL重写来重定向我的非漂亮网址:
http://example.com/_new/url.php?module=planning&action=see&id=2
到这一个:
http://example.com/_new/url/planning/see/2
所以我用过:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ url.php?module=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ url.php?module=$1&action=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ url.php?module=$1&action=$2&id=$3 [L]
但它不起作用。
请帮忙吗?
感谢。
答案 0 :(得分:0)
对于此特定网址重写,您可能需要将[RewriteRule]替换为以下内容:
RewriteEngine On
RewriteCond%{REQUEST_FILENAME}! - f RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^ _new / url /([A-Za-z0-9 - ] +)/([A-Za-z0-9 - ] +)/([A-Za-z0-9 - ] +) ?$ _new / url.php?module = $ 1& action = $ 2& id = $ 3 [NC,L]
您可以从中访问:http://example.com/_new/url.php?module=planning&action=see&id=2
http://example.com/_new/url/ {module_name} = http://example.com/_new/url.php?module= {module_name}
同样适用于$ 2,$ 3。
[NC] =不区分大小写:此标志告诉apache将会[无案例]
[L] =如果此规则已经开始处理,则不会在当前网址重写过程中添加其他规则
您可以在此处了解详情:https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/
希望这有帮助。