Как переписать плоскую ссылку htaccess в реальный URL запроса - PullRequest
2 голосов
/ 06 февраля 2012

Я прочитал много вопросов и ответов здесь, но не смог найти рабочее решение.Я хочу изменить URL-адрес с синтаксиса плоской ссылки на «обычный» запрос.

Как мне получить из этого:

http://localhost/start/__developer/pages/12016652

на это:

http://localhost/start/__developer/pages/suche.php?objektnr=12016652

с помощью htaccess или PHP?Не обращайте внимания на кудряшки, пожалуйста.Заранее спасибо за вашу поддержку!

На данный момент я пытаюсь это:

Options        +FollowSymLinks -MultiViews
RewriteEngine  On
RewriteCond    %{REQUEST_FILENAME} !-d
RewriteCond    %{REQUEST_FILENAME} !-f
RewriteBase    /start/__developer/immo-shg-v4/pages/
RewriteRule    ^([0-9]+)$ suche.php?objektnr=$1 [QSA,L,NC]

Решение:

RewriteRule ^([0-9]+)$ suche.php?objektnr=$1 [L,NC,NE,R]

Флаг [R] вызывает перенаправление.http://httpd.apache.org/docs/2.2/rewrite/flags.html

1 Ответ

2 голосов
/ 06 февраля 2012

Включите .htaccess через ваш httpd.conf, он еще не включен и поместите эти строки в файл .htaccess в папке DOCUMENT_ROOT:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-f    
#This is your redirect rule
RewriteCond %{QUERY_STRING} !(?:^|&)objektnr=([^&]*)(?:&|$) [NC]
RewriteRule ^(start/__developer/pages/)([^/]*) $1suche.php?objektnr=$2 [L,NC,QSA]

Согласно вашим комментариям ниже есть еще один RewriteRule, подобный этому:

# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !(?:^|&)objektnr=([^&]*)(?:&|$) [NC]
#This is your modified redirect rule
RewriteRule ^(start/__developer/immo-shg-v4/pages/)([^/]*) $1suche.php?objektnr=$2 [L,NC,QSA]
...