2012-06-14 1 views
1

У меня есть сайт с одной страницей, который изменяет содержимое на основе переменных, переданных через URL-адрес с PHP..htaccess url переписать для одной страницы сайта

Например, мой URL отображается в

www.mysite.com/index.php?section=home 
www.mysite.com/index.php?section=about-us 

так далее, и так далее, в зависимости от того, какой канал связи вы щелкаете в главной навигации.

Я хочу, чтобы URL-адреса считались www.mysite.com/home или www.mysite.com/about-us.

Модная функция перезаписи включена, потому что, прежде чем я сделал сайт на одной странице, он функционировал правильно.

Я попытался это ...

RewriteEngine on 
RewriteBase/
RewriteRule ^home/?$ index.php?section=$1 [NC,L] 

Я пробовал каждое предложение я нашел на Google и на StackOverflow, ничего не работает.

Любая помощь будет оценена!

+0

Google «Clean URL», «довольно URL», «URL переписывания» и т.д. Есть много и много ответов там уже. –

+0

Ответы на вопросы, относящиеся к многостраничным веб-сайтам, похоже, не для сайтов, которые являются одной страницей. Я возьму ваше предложение и попробую снова посмотреть. –

+0

Я на самом деле использую 'RewriteRule' для той же цели, что и вы, сайт с одной страницей. Я отправлю пример в качестве ответа, потому что обещаю, что это сработает. –

ответ

1

У меня есть .htaccess именно для тех же целей, и это прекрасно работает. Мой код ниже.

RewriteEngine On 
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L] 

Естественно, если index.php не ваш основной PHP файл, заменить это с тем, что есть. Кроме того, замените ?id на ?section, если ваш пример кода - это то, что вы используете.

Что [^/\.]+ означает, что говорит I need you to find text that contains anything but a period (.) or a forward slash (/), and there has to be at least one character in it.

Для примера, перейдите на веб-сайт, я использую его, Northside Aikido.

Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать.

EDIT

Обратите внимание, этот код не превратится в http://www.example.com/index.php?section=homehttp://www.example.com/home автомагически, это будет просто означать, что последняя ссылка работает, как первый. Если вы хотите, чтобы он автоматически заменил его, вам понадобится больше кода, чем одна строка.

+0

Я взял то, что у вас здесь, и поместил его в файл htaccess, но все равно получаю нечистые URL-адреса. –

+0

Прочтите мое редактирование, оно может указать, какая у вас проблема. –

+0

Попробуйте перейти на '[page]/home' вместо' [page] /index.php? Section = home'. –

1

Почти

RewriteEngine on 
RewriteBase/
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?section=$1 [NC,L] 
+0

К сожалению, это не сработало для меня. –

+0

Я считаю, что была опечатка. Посмотрите, работает ли это лучше. –

+0

Не мог заставить это работать. Что-то странное происходит ... –

1

это то, что им с помощью:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^([A-Za-z0-9-]+)/?$  index.php?section=$1 [NC,L] 
</IfModule> 
+0

Это помогло мне. Спасибо! –

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

  • Нет связанных вопросов^_^