当我打开http://my-domain.com/register时,它运行正常 但是当我尝试打开http://my-domain.com/register/时,它会错过CSS和其他东西
我的public_html文件夹中有两个页面,一个CSS目录和.htaccess -
的public_html
.index.html
<?php
$path = $_SERVER['REQUEST_URI'];
$chunks = explode("/", $path);
print_r($chunks);
if($chunks[1] == "register") {
require_once("register.php");
}
?>
的.htaccess
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</ifModule>
答案 0 :(得分:2)
您需要添加:
<base href="/" />
到您的页眉。
或者将您的链接更改为绝对网址。
结尾处的“/”表示浏览器正在使用/register/
是相对网址,而不是网址为/
时的/register
。
编辑:
是否有任何.htaccess方法可以解决这个问题。
但是它确实效率很低,如果你要将css或图像放在其他地方,规则可能并不总能修复它们(甚至可能会破坏它们):
RewriteCond %{REQUEST_URI} !^/CSS/
RewriteRule ([^/]+\.css)$ /CSS/$1 [L]
RewriteCond %{REQUEST_URI} !^/Images/
RewriteRule ([^/]+\.(png|jpe?g|gif))$ /Images/$1 [L]
答案 1 :(得分:1)
这是一种使用重写规则修复css / js / images链接的方法:
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# fix css/images/js links
RewriteRule ^.+?/((?:css|images|js)/.+)$ $1 [L,NC,NE,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</ifModule>