Apache 浏览器似乎显示由.htaccess提供的查询
我用来将所有内容重定向到index.php的方法似乎有问题,index.php位于我的根文件夹public_html中。当然,也不应该有例外,除非文件夹关闭了重写引擎。为了简单起见,让我们假设我使用www.example.com作为我的网站 我的.htaccess如下所示:Apache 浏览器似乎显示由.htaccess提供的查询,apache,.htaccess,url,redirect,mod-rewrite,Apache,.htaccess,Url,Redirect,Mod Rewrite,我用来将所有内容重定向到index.php的方法似乎有问题,index.php位于我的根文件夹public_html中。当然,也不应该有例外,除非文件夹关闭了重写引擎。为了简单起见,让我们假设我使用www.example.com作为我的网站 我的.htaccess如下所示: RewriteEngine on RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 例如,假设在浏览器中输入:www.example.com/test 它按照预期在内部重定向到:ww
RewriteEngine on
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
- 例如,假设在浏览器中输入:www.example.com/test
- 它按照预期在内部重定向到:www.example.com/index.php?url=test
- 我希望浏览器仍然显示:www.example.com/test
- 但是,浏览器现在显示:www.example.com/test/?url=test
- www.example.com/test
- www.example.com/test/?url=test
编辑1:根文件夹将是public_html,so example.com(作为示例)
编辑2:修改了问题的措辞,问题仍然是一样的
编辑3:更改了问题的格式
编辑4:添加了我想重写url的内容,无论是否存在文件夹。您需要在
中使用此内容。htaccess
:
RewriteEngine On
RewriteRule ^([^/]*)$ /test/?url=$1 [L]
此代码将为您留下所需的URL。确保在测试缓存之前清除它。您需要在
中使用它。htaccess
:
RewriteEngine On
RewriteRule ^([^/]*)$ /test/?url=$1 [L]
此代码将为您留下所需的URL。在测试缓存之前,请确保清除缓存。这可能需要进一步的编辑才能完全按照您的要求执行,但使用
RewriteCond
可以指定何时实际重写url的条件
RewriteEngine On
RewriteBase /
##perform rewrite only if requested file does not exist...
RewriteCond %{REQUEST_FILENAME} !-f
##perform rewrite only if requested directory does not exist...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /test/?url=$1 [L]
这可能需要进一步的编辑才能完全完成您想要的操作,但是使用
RewriteCond
可以指定何时实际重写url的条件
RewriteEngine On
RewriteBase /
##perform rewrite only if requested file does not exist...
RewriteCond %{REQUEST_FILENAME} !-f
##perform rewrite only if requested directory does not exist...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /test/?url=$1 [L]
谢谢你的回答,不幸的是它似乎不起作用。我把问题的措辞和形式改得更具体了。谢谢你的回答,不幸的是它似乎不起作用。我改变了问题的措辞和格式,使之更加具体。目前我使用的解决方案是添加一个尾随斜杠。因此,www.example.com/test将首先转换为www.example.com/test/。使用尾随斜杠时,它不会显示/?url=测试。然而,我仍然不知道为什么它首先显示url参数。目前我使用的解决方案是添加一个尾随斜杠。因此,www.example.com/test将首先转换为www.example.com/test/。使用尾随斜杠时,它不会显示/?url=测试。然而,我仍然不知道为什么它首先显示url参数。