2

自分のサイトに短いリンクを作成したい、例えば

site.come/u/1

それ以外の

site.com/user.php?u=1

遊んだことmod_rewriteがありますが、正直なところ、何をしているのかわかりません。URLを作成できますが、ページにリソースが読み込まれると、/u/css/core.css代わりにリソースが読み込まれます。/css/core.css

相対URLを使用してcss/images / jsに読み込んでいますが、すべてのコードを絶対URLに変更せずに、書き換えルールで特定のフォルダーを除外する方法はありますか?

ありがとう

4

3 に答える 3

2

あなたはで試すことができます:

RewriteCond %{REQUEST_URI} ^(css|js|images)/.*$ [NC]
RewriteRule ^(.*)$ $1 [L]

そして、他のルールの前に配置します。

私はここでそれをテストしました、そしてそれは働きます!

于 2012-12-07T11:38:59.973 に答える
1

さて、あなたはほとんどあなた自身の質問に答えています-相対パスを使用する代わりに、あなたはあなたのcssに絶対パスを使用する必要があります。

これで、ブラウザにページがwww.site/u/user.phpとして表示されます。つまり、.. / css/core.cssを使用する必要があります。サイトがルートにある場合は、/ css / core.cssで十分かもしれませんが、フルパスを使用する方がはるかに安全です(つまり$webpath."css/core.css"、$ wehpathが次のようになる可能性が最も高いエコー$webpath="http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];

于 2012-12-07T11:36:58.797 に答える
0

絶対パスを使用する必要があり、すべてが正常になります。

たとえば、次のように実行できます。

<?php 
$baseURL = basename($_SERVER['SCRIPT_FILENAME']); 
?>
<link href="<?php echo $baseURL; ?>/css/core.css" rel="stylesheet" type="text/css" />
于 2012-12-07T11:34:51.213 に答える