我有一个htaccess RewriteRule,它将auth/register.php
显示为/register
,如下所示:
RewriteCond %{REQUEST_URI} register
RewriteRule ^register/?$ /auth/register.php [NC,L]
但是,现在当有人在浏览器窗口中手动输入auth/register.php
时,我需要确保他们看到/register
。我正在使用
Redirect /auth/register.php /register
但显然这会创建一个无限重定向循环。关于如何进行/auth/register.php
任何尝试转到/register
的任何想法,但它仍会显示auth/register.php
的内容,而不会永远重定向?谢谢!
答案 0 :(得分:0)
你需要写一个别名。
此处RewriteRule将始终将您重定向到新网址。因此,使用它会使您重定向到/auth/register.php
。您还编写了一个重定向规则,该规则重定向到/register
。所以这是这两个重定向的无限循环。
应编写的代码是
Alias /register /auth/register.php
这不应该写在.htaccess文件中。它应该写在您网站的虚拟主机文件中
看起来与此相似
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /register /auth/register.php //Add this line only donot disturb any other lines
</VirtualHost>
在.htaccess文件中仅包含此行
Redirect /auth/register.php /register
不包括
RewriteCond %{REQUEST_URI} register
RewriteRule ^register/?$ /auth/register.php [NC,L]