美好的一天! 我的根文件夹中有两个脚本:
/index.php
/home.php
它们都接收get参数并显示不同的页面,f.ex:
index.php?page=info
home.php?page=about
1)当我尝试通过这个做干净的URI时:
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 #working ok
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1 #doesn't load css,js
我发现了三个建议:而是将css,js文件夹的路径应用于htaccess,使用标记或使用绝对路径。 我想知道是否有其他方法可以完全由htaccess完成。或者,如果有一个f.ex,是否可以更改查询字符串以删除“/”: 我插入
example.org/info/
我的字符串会自动变为
example.org/info
2)我的htaccess仅适用于index.php。如果查询字符串中有“userhome”以使此类查询成为可能,我应该如何更改我的规则以使用home.php:
example.org/home/about
P.S
RewriteRule ^home/([a-zA-Z0-9]+)$ home.php?page=$1
关于我的第二个问题,按照我需要的方式工作。但是我还没有完成css,js loading的问题。有任何提示,请
答案 0 :(得分:0)
处理CSS未加载的最佳方法是使用<base>
标记。通过这种方式,您可以使用相对网址,并且不会违反您的规则。
这将放在您网站的head
部分..
<base href="http://www.example.com/" />
您可以根据自己的要求尝试这些规则。
#Redirect to home.php
RewriteRule ^home/([a-zA-Z0-9]+)$ home.php?page=$1 [L]
#Remove the trailing slash
RewriteRule ^([a-zA-Z0-9]+)/$ /$1 [R=301,L]
#Redirect to index.php
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 [L]