0

我的 .htaccess 并没有像我想要的那样重写干净的 URL。它没有按照指示去做,而是给了我一个 404 错误!

我要这个:

http://localhost/somepossiblepath

被路由到这个:

http://localhost/index.php?route=somepossiblepath

目前,这是我的 htaccess 文件:

RewriteEngine On

RewriteCond ${REQUEST_FILENAME} !-d
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-l

RewriteRule ^/(.+)$ /index.php?route=$1 [QSA,L]

我有一个当前的脚本测试,看看它是否会起作用:

<?php echo $_REQUEST['route'] ?>

当我输入时它会起作用,但当我/index输入其他任何东西时它不会起作用。

有什么帮助吗?

4

1 回答 1

0

在 .htaccess 文件中,规则正则表达式匹配的字符串已剥离基本目录(/在 a 的情况下DOCROOT/.htaccess)。所以^/(.*)$不会匹配。例如,您需要的是:

RewriteEngine On

RewriteRule ^index\.php - [L]

RewriteCond ${REQUEST_FILENAME} !-d
RewriteCond ${REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ /index.php?route=$1 [QSA,L]
于 2012-08-16T15:31:42.440 回答