我想为.htaccess创建一个重写规则,我可以使用它重定向子页面。规则应该做出以下的事情:
我有数百页可以在以下路径下访问
http://www.domain.de/firma/stadt/adresse
现在我想将所有这些网址重定向到
http://www.domain.de/firma/stadt
因为我使用了这个规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/firma/stadt/(.+)\.(htm|php|html)$ /firma/stadt/$1 [L,R=301]
</IfModule>
不幸的是,没有任何反应:-(错误在哪里?
此外,我还想从此规则中排除个别网址...有人可以帮助我吗?
亲切的问候
答案 0 :(得分:0)
您的重写规则逻辑存在问题。试试这个:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^firma/stadt/(.+)$ /firma/stadt/ [L,R=301]
</IfModule>
原因:
根据您自己的描述,不的对象的URL在其中http://www.domain.de/firma/stadt/adresse
带有“文件扩展名”。所以期望这样的规则永远不会匹配。
数学模式中的前导斜杠(/
)在.htaccess
样式规则中没有任何意义,因为它们适用于相对路径。
此外,您还必须注意放置htaccess
样式文件的位置。
一般注意事项:如果你确实需要,你应该只使用.htaccess
样式文件。如果您没有访问http服务器配置,则可能是典型情况。否则,您应该始终更喜欢将此类规则放在http服务器主机配置中。 .htaccess
样式文件非常容易出错,难以调试且真的使服务器速度降低。