1

ライブ サイトをローカルに複製するように依頼されました。

リンクが正しくないことを除いて、すべてをセットアップし、完全に機能します.htaccess。少し変更しました。

私のルート URL は次のとおりです。

localhost/httpdocs

私が行くとき:

localhost/httpdocs?path=homepage_video

たとえば、ホームページのビデオに正常に移動します。

ただし、すべてのリンクはすでに次のように設定されています。

localhost/httpdocs/homepage_video

これらのリンクも同様に機能することを望みます。

.htaccessはそのままです:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ?path=$1 [L,QSA]

AddType text/x-component .htc
Options +FollowSymLinks

明らかに私にとっては機能していません.ホームページlocalhost/httpdocsでは、すべてが機能しています(すべての画像とすべてが正しくリンクされ、すべてがうまく見えます)が、リンクをクリックしても機能しません(?path=homepage_videoifに正しく移動しないため)です/homepage_video)。

4

1 に答える 1

1

書き換えルールを次のように変更します

RewriteEngine On
RewriteBase /httpdocs/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(([^/]+/)*[^/]+)/?$ index.php?path=$1 [L,QSA]

編集:(この正規表現はどのように機能しますか?)

これは、ネストされたすべてのディレクトリに一致します。

[^/]+/=[^/]何でもない/; +1回以上; /スラッシュが続く

([^/]+/)*= 0 回以上繰り返し、(..)*中身を一致させる()*

これは、最後の URL ディレクトリと一致します。

<nested-dir-regex>[^/]+=何でもない/; 1回以上+

(<nested-dir-regex>[^/]+)=今()のように取り込める$1

(<nested-dir-regex>[^/]+)/?/= オプションで、最後に;が続きます。?0 または 1に一致

^(<nested-dir-regex>[^/]+)/?$=^パス文字列の開始を示します。$パス文字列の終わりを示します

于 2013-08-15T03:03:02.073 に答える