重写规则,将两个友好的url重定向到同一个文件



我试图将两个不同的url重定向到同一个文件。

url为:http://localhost/CLIENTI/HOTEL/cp/amministratorihttp://localhost/CLIENTI/HOTEL/cp/amministratori/test

事实上,我目前看到的是第一个url,但当我打开第二个url时,我看到客户端包含了很多文件错误(页眉/页脚上的es-js和css文件(。

这是我的.htaccess文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^dashboard$ dashboard.php [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^amministratori$ dashboard.php [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^amministratori/test$ dashboard.php [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]

那是我所有的htaccess代码。错误是bootstrap.js和main.js的404,它们包含前端的自定义代码。我已经理解了这个问题,但我还没有低估是否有一个替代前导斜杠的解决方案,因为我的页眉和页脚都包含在php中,所以在/cp/amministratori中,它们和现在一样工作,但很明显,如果我用前导斜杠更改,它们将不再工作

对于所显示的尝试,请尝试以下htaccess规则。请确保将htaccess文件与CLIENTI文件夹一起放置(不要放在里面(。

请确保在测试URL之前清除浏览器缓存。

RewriteEngine On
RewriteBase /CLIENTI/HOTEL/cp/amministratori/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^dashboard/?$ dashboard.php [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?$ dashboard.php [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^test/?$ dashboard.php [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [QSA,L]

JS/CS重写/重定向:您可能需要使用base标记来修复js和其他相关资源。如果你使用相对路径链接js文件,那么该文件显然会得到404,因为它在寻找URL路径。例如,如果URL路径是/file/而不是file.html,那么您的相对资源是从/file/加载的,该文件不是目录,而是重写的html文件。若要修复此问题,请使链接成为绝对链接或使用基本标记。在你的网页标题中添加这个<base href="/">,这样你的相关链接就可以从正确的位置加载。

最新更新