2013-11-21 2 views
0

Я был в этом ненадолго, но htaccess переписывал его, заставляя меня пить. Поэтому я ищу кого-то умнее меня.htaccess friendly url hell

У меня есть тестовый сайт как так:

www.domain.com/directory/index.php 

Но я хотел бы использовать дружественные URL. Поэтому я хотел бы это, чтобы все сразу перейти к index.php:

www.domain.com/directory/ 
www.domain.com/directory/index.php 
www.domain.com/directory/index.php/arg1/arg2/arg3/arg4 
www.domain.com/directory/calendar/arg1/arg2/arg3/arg4 
www.domain.com/directory/anything-here 

ответ

0

Попробуйте добавить эти правила в файле Htaccess в вашей папке directory:

RewriteEngine On 
RewriteBase /directory/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [L] 

Как дела назначь зависит от последнего линия. Если вы хотите, передается в качестве параметра:

RewriteRule ^(.*)$ index.php?request=$1 [L] 

или если вы хотите использовать $_SERVER['PATH_INFO'] переменную:

RewriteRule ^(.*)$ index.php/$1 [L] 
+0

Я имел некоторые проблемы с потерей активов, как CSS, изображения и JQuery в подкаталогах, будут ли они работать с этим? Честно говоря, у меня было так много неудач, это смешно. Но я попробую. – Maelish

+1

@ user2070436 Я так думаю, что это связано с относительным URL-адресом в вашем содержании страницы. Попробуйте добавить это в заголовки своих страниц: '' (или что бы ни была базой, может быть ''?) –

+0

Базовый тег был хорошим идея. Он исправил эту часть проблемы. Но если я попробую 'www.domain.org/directory/test', я получаю страницу с ошибкой сервера. Я использую строку 'RewriteRule^(. *) $ Index.php/$ 1 [L]'. – Maelish

Смежные вопросы