使用htaccess将带参数的url转换为漂亮的URL

时间:2017-06-03 01:35:04

标签: .htaccess

我想在我的.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]

但它不起作用。

请帮忙吗?

感谢。

1 个答案:

答案 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/

希望这有帮助。