2017-03-06 13 views
0

- このようなPHPファイルを指すようにURLを書き出します。の.htaccessリダイレクト、CSS /画像もはやロード

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ((?:css|images|js)/.*)$ /$1 [L] 

# About Us 
RewriteRule ^about_us/what_we_do/?$ about-what-we-do.php [NC,L] 
RewriteRule ^about_us/mission/?$ about-our-mission.php [NC,L] 
RewriteRule ^about_us/team/?$ about-team.php [NC,L] 
RewriteRule ^about_us/what_next/?$ about-what-next.php [NC,L] 

# Classes 
RewriteRule ^classes/learn/?$ classes-learn.php [NC,L] 
RewriteRule ^classes/1to1/?$ classes-one-to-one.php [NC,L] 
RewriteRule ^classes/swim_fit/?$ class-swim-fit.php [NC,L] 

# Information 
RewriteRule ^information/timetable/?$ info-timetable.php [NC,L] 
RewriteRule ^information/contact/?$ info-contact.php [NC,L] 
RewriteRule ^information/location/?$ info-locations.php [NC,L] 

しかし、これは、これを行うことで、それはすべての画像やCSSファイルへのリンクを破っただ、正しいPHPファイルへのURLにリダイレクトで素晴らしい作品。なぜそれがそれをやっているのか理解していて、CSSフォルダと画像フォルダはパス 'about_us/what_we_do /'に存在しません。

これはドメインのルートで実行されていた場合、すべてのimages/cssファイルの前面、つまり '/ css/style.css'ではなく、現在は 'css/style.css'と呼ばれています。

誰かが「css」、「images」、「js」というフォルダからcss、画像、およびjavascriptを引き続き使用できる方法を提案できますか?私は、各css/imageリファレンスに 'buddies'フォルダを追加する必要はありません。

編集:このようなスタイルシートを参照しています。

<!-- Stylesheet --> 
<link rel="stylesheet" type="text/css" href="css/style.css"> 
<link rel="stylesheet" type="text/css" href="css/style-768.css"> 
<link rel="stylesheet" type="text/css" href="css/style-992.css"> 

答えて

1

要求が/css/...のためのものである場合は、すべてのCSSファイルがディレクトリ/cssにある場合は、あなただけの

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (css/.*\.css)$ /$1 [L] 

このディレクトリにそれぞれを書き換えることができRewriteCondは、書き換えループを回避することがあります。

画像とJavascriptファイルに似ています。あなたも、これはcss/images/またはjs/のいずれかで始まるすべての要求を探し

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ((?:css|images|js)/.*)$ /$1 [L] 

あなただけのディレクトリを見れば

、一つのルールにすべてを組み合わせることができます。


CSSファイルは%{DOCUMENT_ROOT}/cssではありませんが、%{DOCUMENT_ROOT}/buddies/css場合は、ターゲットは、例えば、それに応じて付ける必要があります

RewriteRule ((?:css|images|js)/.*)$ /buddies/$1 [L] 
+0

私は第2のアプローチを好むが、悲しいことに、まだそれは機能しない。私は元の質問のコードを更新しました。 – SheppardDigital

+0

CSSファイルはどこにありますか? '/ css/style.css'か'/buddies/css/style.css'でしょうか? –

+0

これらは/buddies/css/style.css – SheppardDigital

1

<base href="http://www.example.com/">を使用すると、外部ファイルがそのディレクトリにリダイレクトされます。

+0

この解決策は機能しますが、すべてのページにコードを追加することを避け、1つのファイル(.htaccess)で管理してメンテナンスを容易にすることができます。 – SheppardDigital

関連する問題