繁体   English   中英

.htaccess查询字符串重写

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM