.htaccess мәселелері

Менде екі нәрсе бар бет бар:

When users click on this link: http://www.example.com/whatever_200/index.html/?id=4 it is actually processed by http://www.example.com/search/profile-condo.php?id=4

Дегенмен, Бразилиядағы адамдар үшін де келесі әрекеттерді орындағым келеді www.example.com/br/whatever_200/index.html/?id=4 www.example.com/br/search/profile-condo.php?id=4

Ағылшын нұсқасы үшін келесі жұмыс жақсы:

addhandler x-httpd-php5 .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/index.html$ /search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]

Бірақ қосқан кезде

RewriteRule ^(.*)/br/^(.*)/index.html$ /br/search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]

Бұл жұмыс істемейді.

Мен не істеп жатырмын?

0

1 жауаптар

Сіздің ережеңізбен үш проблема бар.

Ең алдымен ереже тәртібі. Бірінші ереже /index.html аяқталатын кез келген нәрсеге сәйкес келеді және ол қайта бағыттауды орындайды. Бұл (дұрыс) соңғы ереже ретінде белгіленеді ( L жалауша). Осыған байланысты екінші ереже ешқашан орындалмайды. Егер сіз жалпы ережені br ережесін қоссаңыз, ол алдымен тексеріледі, және ол сәйкес келсе, қайта бағытталады.

Екіншісі - екінші ережедегі тұрақты өрнектер. Ол өрнек ортасында ^ циркумплексінен тұрады. Циркфлекс жолдың ортасында ешқашан пайда болмайтын жолдың бастауы дегенді білдіреді. Циркфлексті шығару оны түзетеді.

Үшінші мәселе, сіз өзіңіздің url кодының /br/ бөлігіне ( (. *) ) ие бола отырып, сіздің таңбаларыңызға рұқсат бересіз. бұл шынында да қажет емес.

Қорытынды:

addhandler x-httpd-php5 .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/br/(.*)/index.html$ /br/search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]
RewriteRule ^(.*)/index.html$ /search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]
1
қосылды
Оқасы жоқ ;-)
қосылды автор Ondergetekende, көзі
Сіздің сұрағыңызға Колер дұрыс жолды қойды. Көп рақмет!
қосылды автор Hugo, көзі