【发布时间】:2015-12-16 16:20:31
【问题描述】:
我正在尝试为网站创建一个后端以使用 URL 友好。我想要完成的是http://account_name/backend 之后的所有内容都将被重定向到index.php(并且该文件将处理查询字符串),但如果用户未登录,index.php 将重定向到@987654326 @ 并且该 URL 应指向 login.php 文件。
此时,如果我点击http://account_name/backend,我将被重定向到http://account_name/backend/login,我看到login.php 文件,但js 和css 资源未加载。这些资源被称为:
<script type="text/javascript" src="js/jquery.js"></script>
显然我遇到了一些路径问题,但我无法弄清楚。我尝试在 htaccess 中设置 RewriteBase 并在 HTML 中设置 base href 但没有运气。
另外,我应该提到,如果尝试直接访问 js,我将被重定向到
http://account_name/backend/js/jquery.js > http://account_name/backend/js/login
前面的文件在:
D:\FolderA\FolderB\AccountName\Project
后端的文件在:
D:\FolderA\FolderB\AccountName\Project\backend
这是我的虚拟主机:
<VirtualHost account_name>
DocumentRoot "D:\FolderA\FolderB\AccountName\Project"
<Directory "FolderA">
AllowOverride All
</Directory>
</VirtualHost>
到目前为止,这是我的 .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{ENV:REDIRECT_STATUS} !^[\s/]*$
RewriteRule ^ - [L]
RewriteRule ^login$ login.php [L]
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
【问题讨论】:
-
如何将用户重定向到
<path>/login页面?任何给定的规则都不应该这样做。 -
@hjpotter92 在 index.php 中,如果没有设置会话:
header("location: login"); -
@hjpotter92 我也可以在地址栏输入
http://account_name/backend/login
标签: apache .htaccess url mod-rewrite friendly-url