2016-03-26 11 views
0

誰かが助けてくれると思っていましたか?基本的に私はmod_rewriteのルールを持っていますし、URLの最後にスラッシュをつけておかなければうまくいきます。 CSS、JSなどのすべてが除外されている(時には)ページはまだ表示されていません。なぜなら、末尾にスラッシュがあるとパスが壊れてしまうからです。それを解決する唯一の方法は、私が本当に避けたいBASEタグを置くことです。私のhtaccessに何か問題がありますか?後続のスラッシュを無視するだけです。htaccess末尾にスラッシュが付いたmod_rewriteが発生する

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^resetpassword/([^/.]+)/?$ resetPassword.php?resetCode=$1 [L] 
RewriteRule ^activate/([^/.]+)/?$ activateAccount.php?ACTCode=$1 [L] 
RewriteRule ^dashboard/?$ dashboard.php [NC,L] 
RewriteRule ^login/?$ login.php [NC,L] 
RewriteRule ^register/?$ register.php [NC,L] 
RewriteRule ^messages/inbox/??$ messagesInbox.php [NC,L] 
RewriteRule ^messages/archive/??$ messagesArchive.php [NC,L] 
RewriteRule ^messages/??$ messagesInbox.php [NC,L] 

答えて

1

あなたは(messages/inboxのように)どのような場合には、「ディレクトリ」のレベルを切り替えることになりますので、このための良い修正は可能性がありません。

最も一般的な解決策は、画像等:

<link rel="stylesheet" href="/css/styles.css"> 

またはWebルートを含むPHP変数を持つ、CSSを参照するために、絶対パスを使用するかである:

<link rel="stylesheet" href="<? echo $webroot; ?>/css/styles.css"> 

これらの両方アプローチは、baseタグを使用するか、または.htaccessベースのリダイレクションセナニガンを行うよりもはるかに優れています。

+0

ファイルは実際にはルートにありますが、ディレクトリを見て「きれいに」見えるようになっています。私はすべてのインクルードのための絶対パスを入れましたが、何らかの理由で後ろにスラッシュを入れたときに彼らは変わってしまいます。 例: URL localhost/project/login - WORKS URL localhost/project/login/- すべてがLOGINディレクトリを参照するように変更されました –

+1

次に、何か問題があります。コード例を表示できますか? –

関連する問題