繁体   English   中英

重定向PHP应用程序中的每个链接

[英]Redirect every link in php application

我已经制作了一个PHP网络应用程序,它使用如下链接:

 <a href="/asset/image.ext">Link</a> ... onClick="window.location.href='/asset/image.ext'" ... <? header("Location: /login"); ?> etc. 

您可能已经注意到,几乎每个链接都以/开头。 许多链接都用.htaccess重写,如下所示:

 Options All -Indexes RewriteEngine on RewriteRule ^login/error_418$ assets/common/login.php?&error [L] RewriteRule ^login$ assets/common/login.php [L] RewriteRule ^settings/change-profile-picture$ index.php?page=settings&command=profilePicture [L] RewriteRule ^settings/change-password/error-requirements$ index.php?page=settings&command=password&error=requirements [L] RewriteRule ^settings/change-password/error-missmatch$ index.php?page=settings&command=password&error=missmatch [L] RewriteRule ^settings/change-password/error-418$ index.php?page=settings&command=password&error=418 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)/grades$ index.php?page=grades&course=$1 [L] 

现在我需要把它移到Web服务器在那里将上NOT处于root direcotry而是一个文件夹中...

现在如何将所有根链接重定向到该文件夹​​?

首先将您现有的规则放在/folder/.htaccess如下所示:

Options All -Indexes
RewriteEngine on
RewriteBase /folder/

RewriteRule ^login/error_418$ assets/common/login.php?&error [L]
RewriteRule ^login$ assets/common/login.php [L]

RewriteRule ^settings/change-profile-picture$ index.php?page=settings&command=profilePicture [L]
RewriteRule ^settings/change-password/error-requirements$ index.php?page=settings&command=password&error=requirements [L]
RewriteRule ^settings/change-password/error-missmatch$ index.php?page=settings&command=password&error=missmatch [L]
RewriteRule ^settings/change-password/error-418$ index.php?page=settings&command=password&error=418 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/grades$ index.php?page=grades&course=$1 [L]

然后在根.htaccess中创建一个规则,如下所示:

RewriteEngine On
RewriteBase /

RewriteRule ^((?!folder/).*)$ folder/$1 [L,NC]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM