繁体   English   中英

Mod_rewrite未按预期工作

[英]Mod_rewrite isn't working as intended

我正在尝试将特定的结构化URL重写为另一个结构。

原来的网址是

http://www.mywebsite.com/FF_Supersneaker_Black_Metallica_p/155-157.htm

而我正在尝试重写它

http://www.mywebsite.com/FF_Supersneaker_Black_Metallica.html

基本上删除“_p / 155-157.htm”并附加.html

我用来做这个的htaccess文件是

<IfModule mod_rewrite.c>  
    RewriteEngine On    
    RewriteRule /(.*)/(.*)_p/[^/]*.htm$ /$1$2.html
</IfModule>

但它似乎失败了,这是我进入页面时得到的重写日志。

255.255.255.255 - - [25/Apr/2012:12:34:43 --0400] [www.mywebsite.com/sid#9b25ed8][rid#9e33c28/initial] (3) [perdir /var/www/test/] strip per-dir prefix: /var/www/test/FF_Supersneaker_Black_Metallica_p/155-157.htm -> FF_Supersneaker_Black_Metallica_p/155-157.htm
255.255.255.255 - - [25/Apr/2012:12:34:43 --0400] [www.mywebsite.com/sid#9b25ed8][rid#9e33c28/initial] (3) [perdir /var/www/test/] applying pattern '/(.*)/(.*)_p/[^/]*.htm$' to uri 'FF_Supersneaker_Black_Metallica_p/155-157.htm'
255.255.255.255 - - [25/Apr/2012:12:34:43 --0400] [www.mywebsite.com/sid#9b25ed8][rid#9e33c28/initial] (1) [perdir /var/www/test/] pass through /var/www/test/FF_Supersneaker_Black_Metallica_p/155-157.htm

我相信我的规则似乎有些不对劲,但我不确定是什么。 如果有人能给我一些想法,我会很感激。

感谢您的任何帮助。

首先,看看这个:

strip per-dir prefix: /var/www/test/FF_Supersneaker_Black_Metallica_p/155-157.htm -> FF_Supersneaker_Black_Metallica_p/155-157.htm

您匹配的路径实际上是FF_Supersneaker_Black_Metallica_p/155-157.htm因为您在目录上下文(来自.htaccess文件)中运行。 所以它不会匹配任何以/开头的东西......

这表明你真正想要的只是......

RewriteRule (.*)_p/[^/]*.htm$ /$1.html

...如果你想要的结果是:

FF_Supersneaker_Black_Metallica.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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