2017-08-12 10 views
0

私は自分のウェブサイトでかなりのリンクを使用しようとしていますが、私はCSSとjsファイルのパスに問題があります。
きれいなURLでパスを修正しますか?

は、私は.htaccessファイルに書いた厥

RewriteEngine on 
RewriteRule ^register register.php [NC,L] 
RewriteRule ^login login.php [NC,L] 
RewriteRule ^settings settings.php [NC,L] 
RewriteRule ^logout logout.php [NC,L] 
RewriteRule ^profile/([0-9a-zA-Z]+)$ profile.php?u=$1 [NC,L] 
私は変数
例でprofile.phpにアクセスしようとすると、ここで問題が表示されます

:これはこことしてプロファイルを検討するhttp://example.com/xxxx/profile/ashraf
フォルダではないスタイルファイルをインポートする際のメインフォルダ。profile.phpだけです。

ありがとうございました

+1

あなたの質問は不明です。何が起こると思いますか?あなたが '/ xxxx/profile/ashraf'で与えたパスはあなたのルールと一致しません(最後のルールではパスは' xxxx'ではなく 'profile'で始まります)。アクセスしようとしているCSSへのパスと、取得したエラーを具体的に示してください。 – BeetleJuice

+0

xxxxはメインパスで、プロファイルはPHPファイル 私はルートファイルで作業していません私はxxxでhtaccessファイルが内部にあります –

+0

スタイルパスはxxxx /スタイル –

答えて

1

は、私は基本的に(多くのCMSシステムで共通)、これは言う、実際のファイル!-f、または!-dが、その後の継続実際のディレクトリの場合ではありません、あなたのルール

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

前にこれを追加することができると思います。したがって、cssファイルなどのファイルが実際に存在する場合は、条件をパスしないため、書き換えられません。

だから私はここにそれを置くと言うでしょう

RewriteEngine on 
## insert here ## 
RewriteRule ^register register.php [NC,L] 

あなたは私が.htaccessで全体の多くを行っていないように私のような、のことを確認していないことを、各ルールの前にそれを配置する必要があり5年。基本的にURLの代わりにURIを使用する方法を学び、すべてをindex.phpとルータスクリプトを通してルーティングしました。

最近私の.htaccessファイルの範囲です(覚えが不足していることを説明するためのFYIです)。文字通り変更はありません。それは、ルータを構築し、私はURI方法はどのような作品私が呼ぶかのかなり良い(私がそう言う場合)の説明がありましたURI

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

この回答を使用しての最大の利点の一つです。ここで

How to change the name of the directory in url in php using htaccess?

基本的なルータ

Oop php front controller issue

を構築する方法を概説し、このトピックに私がした別の答えは、とにかくそれが役に立てば幸いです。

0

URLのパスが実際のディレクトリであるか、書き換えルールで使用されている部分だけであるかどうかは、ブラウザが認識できません。 CSSを取得するためにWebサーバーに要求を送信すると、ブラウザは相対URLを絶対パスに変換し、現在のページがディレクトリのパスにあるとみなします。言い換えれば

は、あなたのHTMLページでは、常に絶対URLを使用する:<link href="/xxxx/style/mycss.css" ...>

+0

ありがとうございます私はリンクを動的にすることもできます。つまり、スタイルパスを編集することなくどこでも動作します。 –

+0

これは真実ではありません。 – ArtisticPhoenix

0

はprofile.phpルールの後にこれを入れてください。これは余分な 'プロフィール'を取り除きます。

RewriteRule ^profile/(.*)$ $1 [L] 

またはCSSファイルへの長いパスを使用します。どちらかが動作するはず

<link href="/xxxx/style/style.css" rel="stylesheet"> 

関連する問題