[英].htaccess Query String Rewrite
已经转了几个小时,真的会有所帮助。
我正在尝试重写包含查询字符串(由company.php开头)的URL。
我找到了一些方法来使重写本身起作用,但是它始终显示404 :(
例如,我需要重写(使用示例值):
http://test.domain.com/company.php?companynumber=05614768
至:
http://test.domain.com/company/05614768/
这是我设法重写的一对夫妇,但正在使用404:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/company\.php$
RewriteCond %{QUERY_STRING} ^companynumber=([0-9]*)$
RewriteRule ^(.*)$ http://test.domain.com/company/%1/? [R,L]
和
RewriteEngine On
RewriteCond %{QUERY_STRING} ^companynumber=([0-9]*)$
RewriteRule ^company\.php$ http://test.domain.com/company/%1/? [R,L]
我猜我需要弄清楚内部重定向和外部重定向如何进行? 但是我真的很挣扎...
Centos 6.6 / Apache 2.4.12
现在,如果这是您的新旧重定向:
RewriteCond %{QUERY_STRING} ^companynumber=([0-9]*)$
RewriteRule ^company\.php$ http://test.domain.com/company/%1/? [R,L]
然后通过以下方式重新映射新的传入URL:
RewriteRule ^company/(\d+)/?$ company.php?companynumber=$1 [END]
注意:
[END]
标志,以避免再次进行内部重写。 \\d+
占位符。 另请参见参考中的“乒乓重写” :说明了mod_rewrite,URL重写和“漂亮链接” 。 这些重写仅应用作临时措施。 在您的HTML模板中建立新的URL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.