htaccess重定向无限重定向

时间:2017-09-28 22:07:14

标签: php .htaccess redirect mod-rewrite

我有一个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的内容,而不会永远重定向?谢谢!

1 个答案:

答案 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]
相关问题