2013-08-09 6 views
0

У меня есть WAMP установлен, а проект в в E:/wamp/www/project/index.php Ссылки из index.php перенаправлять show.php Я использую ниже .htaccess сценарий, чтобы иметь возможность сделать URL в show.php появляются как /article-title вместо того, что он обычно делает то show.php?id=xxxКонфигурация для страницы перенаправления

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule (.*)$ show.php?id=$1 [QSA,L] 

Но выше .htaccess файл, который находится в project/ вдоль стороны индекс/показать страницу, кажется, не работает. Он даже не показывает мне папку проекта, когда я иду в www/

Я не знаю, где проблема, и переписывают-модуль на

+0

@Prix Nope. Если я следую описанному выше методу, я даже не могу увидеть папку 'project' с' http: // localhost' – ANW

+0

Nope. вся папка «project» не отображается. даже если я получаю доступ к 'index.php' – ANW

+0

@Prix Не уверен, прочитаете ли вы весь вопрос. С '.htaccess', сидящим в корневой папке моего проекта, т.е. (' c:/wamp/www/project/htaccess' или 'localhost/project/.htaccess'), я не могу получить доступ к стороне и даже не видеть папку или любую часть файла, если я перейду к 'locahost/index.php' или даже' localhost/'с обратной стороны, если я удалю файл' .htaccess', я все вижу и получаю доступ к странице индексов моих проектов от 'locahost/project/index.php' – ANW

ответ

1

Учитывая, что ваша статья URL выглядит так:

http://localhost/project/1122-some-title-comes-here 

Вы можете использовать это правило:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^project/(\d+)-([\w-]+)/?$ /project/show.php?id=$1 [QSA,L] 

Если вы хотите, чтобы ваши статьи из корневой папки, как это:

http://localhost/1122-some-title-comes-here 

Вы можете изменить приведенное выше значение:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(\d+)-([\w-]+)/?$ /project/show.php?id=$1 [QSA,L] 

Приведенные выше условия означают, что если папки, файлы и символические ссылки являются ложными, перепишите их. Самого правила ^(\d+)-([\w-]+)/?$, если начать с цифрами и тиром и содержит дополнительные буквенно-цифровые символы и тир и конец или нет с / внутренне перенаправлять:

/project/show.php?id=$1 

$1 значит передать результат в скобках из правила к идентификатору, который равен (\d+), который в нашем примере будет означать номер 1122.

+0

Спасибо, ты спас меня. Я бы поддержал, если бы мог. – ANW

+0

@XiiXii thats ok;) рад, что он работает для u. – Prix

0

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html «Директива RewriteBase указывает URL префикс, который будет использоваться для директив perlode (htaccess) RewriteRule, которые заменяют относительный путь ».

+0

Извините, но этот ответ не решает мою проблему – ANW

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