показать другой путь с .htaccess - PullRequest
2 голосов
/ 15 марта 2012

На моем веб-сервере я хотел бы сохранить следующую структуру папок, чтобы ее было проще поддерживать:

/de/index.html

Как изменить видимый URL-адрес в браузере www.mydomain.de / de / index.html на www.mydomain.de / index.html через .htaccess?

Я хотел бы сохранить каталог / de / на сервере, но не хочу отображать его в браузере. Что бы вы посоветовали?

1 Ответ

2 голосов
/ 15 марта 2012

Это тривиальное переписывание.

В этой версии предполагается, что ваши скрипты, изображения и CSS-файлы все еще используют структуру /de/whwhat.css в вашей разметке.

RewriteEngine On
# Don't rewrite requests to /de or other real files
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^.*/(css|scripts)
# Rewrite incoming requests to their equivalent behind /de
RewriteRule ^(.*)$ de/$1 [L,QSA]

И эта версия допускает изображения, CSS,и сценарии также должны иметь свои / de скрытые:

RewriteEngine On
# Don't rewrite requests to /de or other real files
RewriteCond %{REQUEST_URI} !^/de/?
# Rewrite incoming requests to their equivalent behind /de
RewriteRule ^(.*)$ de/$1 [L,QSA]

Обновление

Для принудительного перенаправления запросов на / de для использования нового URL:

RewriteEngine On
# Force redirection out of /de
RewriteCond %{REQUEST_URI} ^/test/de/
RewriteRule test/de/(.*) http://%{HTTP_HOST}/test/$1 [L,R=301,QSA]

# Don't rewrite requests to /de or other real files
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^.*/(css|scripts)
# Rewrite incoming requests to their equivalent behind /de
RewriteRule ^(.*)$ de/$1 [L,QSA]
...