我的.htaccess不会像我想要的那样重写干净的网址。它不是按照指示做的,而是给我一个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
时它会起作用,但是当我输入其他内容时它不会起作用。
任何帮助?
答案 0 :(得分:0)
在.htaccess文件中,由规则regexp匹配的字符串剥离了基本目录(/
的情况下为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]