1

現在のディレクトリ構造:

wwwpublic
|+ spanish(language)
|-- index.php
|-- contact.php
|
|- index.php
|- aboutus.php
|- products.php
|- contact.php

wwwpublicディレクトリのルートには、英語のファイルがあります。サイトにもスペイン語があるので、「spanish」という名前の別のディレクトリを作成しました。ページの名前は、両方のディレクトリでまったく同じです。

現在、スペイン語のディレクトリにいくつかのページが存在しないため、そのようなページへのリクエストをルートフォルダにリダイレクトし、リクエストされたファイルの名前を保持する必要があります。

例:訪問者はスペイン語版に移動し、そこでindex.phpを開き、スペイン語のディレクトリ内のaboutus.phpページ(存在しない)をクリックすると、.htaccessによって/root/aboutus.phpにリダイレクトされます。

4

1 に答える 1

1

ディレクトリで次のようなことを試してくださいwwwpublic。できれば、ルーティング ルールを設定する前に、次のようにします。

RewriteEngine On

# conditions to check that current request doesn't point to a valid resource
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# condition to check that request is for the /spanish/ directory
RewriteCond %{REQUEST_URI} ^/spanish/(.+)$

# conditions to check if the /spanish/ is removed whether it would point to a valid resource
RewriteCond %{DOCUMENT_ROOT}/%1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%1 -d

# all conditions match, rewrite
RewriteRule ^/?spanish/(.+)$ /$1 [L]
于 2012-09-26T19:35:30.887 に答える