0

我正在使用以下代码将所有带有大写字母的 url 重定向到相同 url 的相同小写版本。

RewriteEngine On
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]
RewriteMap  lc int:tolower

所以任何类似的东西http://host/InDex.php都被重定向到http://host/index.php

但我只需要 cakephp 路由 url 的这种行为。app/users/1不适用于服务器上存在的文件。

4

1 回答 1

0

首先你需要明白这RewriteMap是不允许的.htaccess。它需要进入 Apache 配置,例如httpd.conf,一旦完成,将您的代码替换为:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^A-Z]*[A-Z].*)$ ${lc:$1} [R=302,L]

确认它工作正常后,替换R=302R=301. R=301在测试你的 mod_rewrite 规则时避免使用(永久重定向)。

于 2013-05-22T14:04:25.283 回答