PHP APACHE URL rewriting


PHP APACHE URL rewriting

我已经在网上搜索了整整两个小时,现在尝试了不同的东西,但我发现的都不起作用。

我想重定向到一个不存在的文件夹,然后将其转换为查询字符串-例如,一个指向"domain.com/test/"的锚标记。但是.htaccess应该拦截它,并将其更改为"domain.com/index.php?p=test"在窗帘后面,而不让查看者看到查询字符串

我不确定我做错了什么,但我已经在谷歌上尝试了几乎所有的东西——至少第1页和第2页:p

非常感谢您的帮助。

mod_rewrite具有属性测试,允许您测试请求的url是文件还是目录。请参阅文档。

要使用此功能,请使用RewriteCond来测试%{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标志将使重定向成为永久性的,但只有当所有规则都按您期望的方式工作时,才使其成为永久性。