0

古いデザイン ( www.your-translations.com ) からwww.your-translations.com/_YTの新しいデザインに永続的にリダイレクトしようとしています。

その過程で、URL を次の形式から変更する必要があります。

www.your-translations.com/my_page.php _

この形式に:

www.your-translations.com/_YT/index.php?pge=my_page _

これまでに多くの試みを行ってきましたが、最新のものは次のとおりです。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST}    ^.*your\-translations.com.*$    [NC] 
RewriteRule ^(.*?)/([^/]*)\.php $1/_YT/index.php?pge=$2 [R=302]
RewriteCond %{HTTP_HOST} ^your-translations.com [NC] 
RewriteRule ^(.*)$ http://www.your-translations.com/$1 [R=302,L]

これは、明らかにほとんど何もしないという点で、私のより良い試行の 1 つです (以前の試行では 505 エラーと無限ループが発生しました)。「www.」への URL の書き換え。正常に動作します。

さまざまな正規表現テスターで正規表現をテストしましたが、期待どおりの動作をしているようです。

誰かが私が間違っていることを説明できますか?

  1. パターンは正確に何に適用されますか? RewriteCond で一致するものですか?入力した URI は? 相対パス?サーバー上の実際のパスは?

一致させる前に文字列を表示する方法はありますか?

  1. チュートリアルで見つかったいくつかの提案により、サーバーで無限ループが発生します。すべてのバージョンが同じように機能しますか?

残念ながら、ウェブホストのテクニカル サポートは mod_rewrite について何も知らないようで、彼らからの助けは期待できません。

私の FTP ログによると、私はすでに約 80 回の試行を行っており、ここでは本当に手を使うことができました。

4

2 に答える 2

1
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} ^your-translations\.com$
RewriteCond %{REQUEST_URI} !^/_YT/([a-z0-9-_]+)\.php$
RewriteCond %{REQUEST_URI} ^/([a-z0-9-_]+)\.php$
RewriteRule ^(.*) /_YT/index.php?pge=%1 [QSA]

RewriteCond %{HTTP_HOST} ^www\.your-translations\.com$
RewriteCond %{REQUEST_URI} !^/_YT/([a-z0-9-_]+)\.php$
RewriteCond %{REQUEST_URI} ^/([a-z0-9-_]+)\.php$
RewriteRule ^(.*) /_YT/index.php?pge=%1 [QSA]

RewriteCond では、.htaccess のドットは任意の文字を意味するため、ダッシュの前ではなくドットの前にバックスラッシュを入力する必要があります。申し訳ありませんが、私はモバイルにいるので、これ以上説明できませんでしたが、コードについて知りたいことをお気軽に質問してください.

于 2013-04-02T15:18:39.737 に答える
0

webmasterworldからのいくつかの説明のおかげで、mod_rewrite コードを修正できました。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^your-translations.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.your-translations.com [NC]
RewriteCond %{REQUEST_URI} !="^.*?/.*" 
RewriteRule ^([^/]*)\.php$ http://www.your-translations.com/_YT/index.php?pge=$1 [R=302,L]
RewriteRule ^$ http://www.your-translations.com/_YT/ [R=302,L]

これは今のところ正しく機能しているようです (木に触れています)。サーヴァント、助けてくれてありがとう。

于 2013-04-03T07:19:04.723 に答える