.htaccess RewriteRule未重写正确URI

dohp0rv5  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(145)

这是我的.htaccess:

AddDefaultCharset UTF-8
DefaultLanguage fr-FR

Options -Indexes

RewriteEngine on
RewriteBase /

<Files .htaccess>
    Order Allow,Deny
    Deny from all
</Files>

RewriteRule ^cle-usb-populaires/$ /top-cle-usb.php [QSA]
RewriteRule ^informatique/$ /informatique.php [QSA]
RewriteRule ^cles-usb/$ /informatique.php?groupe=usb [QSA]

本次重写工作:

RewriteRule ^top-usbb-key/$ /top-usb-key.php [QSA]

此重写起作用

RewriteRule ^informatique/$ /informatique.php [QSA]

本次重写工作

RewriteRule ^cles-usb/$ /informatique.php?groupe=usb [QSA]

所以我不明白为什么第一次和第三次重写工作,而不是第二次...:(
你知道吗?

oiopk7p5

oiopk7p51#

本次重写工作

RewriteRule ^cle-usb-populaires/$ /top-cle-usb.php [QSA]

此重写无效

RewriteRule ^informatique/$ /informatique.php [QSA]

这很可能是由于打开了选项MultiViews
使用.htaccess顶部的以下行将其关闭:

Options -MultiViews

选项MultiViews(请参阅http://httpd.apache.org/docs/2.4/content-negotiation.html)由Apache's content negotiation module使用,它在**mod_rewrite之前**运行,并使Apache服务器匹配文件的扩展名。因此,如果/file是URL,则Apache将服务/file.html

相关问题