我已经在网上搜索了整整 2 个小时,现在尝试不同的东西,但我发现的东西都不起作用。
我想重定向到一个不存在的文件夹,然后将其转换为查询字符串 - 例如导致“domain.com/test/”的锚标记但是.htaccess 应该拦截它并将其更改为“domain.com /index.php?p=test" 在没有观众看到查询字符串的窗帘后面
我不确定我做错了什么,但我已经在谷歌上尝试了几乎所有的东西——至少第一页和第二页:P
任何帮助是极大的赞赏。
mod_rewrite 具有属性测试,允许您测试请求的 url 是文件还是目录。请参阅文档。
要使用它,您可以使用 aRewriteCond
来测试%{REQUEST_FILENAME}
。然后,您可以重定向或内部重写 url。重定向会明显改变客户端的 url,而内部重定向只会显示不同的页面,而不会实际更改 url。
#The requested url is NOT a directory AND NOT a file
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?p=$1 [L]
如果您希望发生外部重定向,请添加R
- 标志。该R=301
标志将使重定向永久化,但只有在所有规则都按您期望的那样工作时才使其永久化。