【发布时间】:2021-04-13 12:31:25
【问题描述】:
我有一个 PHP 配置文件系统。 如果你想访问他们的个人资料,你必须转到 /profile.php?user=username 我希望能够重写这个 /@username。
目前,我的 .htaccess 代码是这样的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ - [F]
RewriteRule ^@(.*)$ profile.php?user=$1 [L,QSA]
已修复:我必须在我的 apache 配置中将 AllowOverride 更改为 All。
<Directory /path/to/directory>
AllowOverride All
</Directory>
并将我的 htaccess 文件更改为:(感谢回答此问题的人)
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^@(.*)/?$ profile.php?user=$1 [L]
【问题讨论】:
-
不确定为什么您的 htaccess 文件中有
RewriteRule ^(.*)$ - [F]规则。这意味着它将禁止任何满足您提到的两个条件的页面。恕我直言,这不应该出现在您的规则文件中(至少对于您在问题中提出的重写而言)。
标签: apache .htaccess mod-rewrite url-rewriting friendly-url