2014-01-03 3 views
1

У меня возникла проблема с переписыванием URL. Прежде всего, я начинаю думать, что я ошибаюсь в структуре моей веб-страницы. Я сделал несколько файлов php. Я думаю, что это ошибка, потому что во всех уроках и образцах, которые они используют в .htaccess, только index.php.URL переписать более одного файла php

информация 1. Я получил на вкладке навигации index.php section1.php section2.php section3.php section4.php 2. В index.php я только иметь основную информацию, которая не изменится. 3. В каждом файле section.php я повторяю список статей. 4. Каждый aricle получил идентификатор, и я использую его, чтобы отображать информацию, когда пользователь нажимает ссылку на статью. 5. ссылка на статью "http://www.example.com/section1.php?id=607575" 6. В каждом файле section.php у меня есть более одной страницы. 7. На данный момент мои ссылки на страницу раздела выглядят следующим образом: «http://www.example.com/section1.php?page=1». Вопросы

Qestions

  1. Если я лучше повторить всю информацию о index.php странице по получении информации из URL?
  2. Если теперь моя ссылка выглядит так: <a href="http://www.example.com/section1.php?page=1>section1</a> мне нужно вручную переписать их или доза не имеет значения, .htaccess выполнит эту работу?
  3. Если мне нужно переписать URL-адрес, это будет выглядеть так? <a href="http://www.example.com/section1.php/section1/page/1">section1</a>

  4. Как переписать URLs так что они выглядят как этот www.example.com/section1/page/1 и www.example.com/section1/article/607575 (я знаю, что это плохо, чтобы использовать только цифры, я просто нужно понять, как это работает, тогда я выясню, как заменить его на имя статьи).

ответ

1

Если я правильно понимаю, это то, как вы бы переписать:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ /path/to/section1.php?page=$ [QSA,L] 

Я не очень привык к mod_rewrite, но это должно работать. Возможно, вам придется переписать правило для? Статьи тоже.

Если это не ответил правильно, пожалуйста, обратитесь к http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

+0

Thanks for response! Это сработало . Но почему это больше не выполняется css? – grab

+0

Вы должны сделать файл CSS глобальным. Поэтому, если ваш CSS-файл прямо сейчас href = "style.css", вы должны сделать его «www.example.com/css/style.css». –

+0

Работает как очарование, кроме одного. На самом деле две вещи. Дает мне ошибку, когда я пытаюсь добавить несколько rewriteconds ... Я написал что-то вроде этого: RewriteRule^(. +) $/Path/to/section1.php? Page = $ [QSA, L] RewriteRule^(. +) $/path/to/section1.php? article = $ [QSA, L] RewriteRule^(.+) $/path/to/section2.php? page = $ [QSA, L] RewriteRule^(. +) $/path/to/section2.php? article = $ [QSA, L] RewriteRule^(. +) $/path/to/section3.php? page = $ [QSA, L] RewriteRule^(. +) $/path/to/section3.php? article = $ [QSA, L] RewriteRule^(. +) $/path/to/section4.php? page = $ [QSA, L] RewriteRule^(. +) $/path/to/section4.php? article = $ [QSA, L] ' – grab

0

От: http://www.example.com/section1/page/1

To: http://www.example.com/section1.php?page=1

RewriteRule ^section(\d+)/page/(\d+)$ /path/to/section$1.php?page=$2

От: http://www.example.com/section1/article/607575

To: http://www.example.com/section1.php?id=607575

RewriteRule ^section(\d+)/article/(\d+)$ /path/to/section$1.php?id=$2

+0

привет Стефани. Спасибо за ответ. Я боюсь много часов и не могу этого сделать. Я прочитал руководство по перезаписи мод Apache и все еще не мог понять. Я предполагаю, что ваше предложение не работает из-за раздела $ 1 $ 1. Мне нужно, например: dom.com/cars.php?page=1, на dom.com/cars/page/1, и когда пользователь нажимает на статью dom.com/cars.php?id=3452 на dom.com/cars/ id/3452 также я получил ошибку, когда я попытался использовать несколько строк кода i nead, чтобы добавить dom.com/bikes.php?page=1 ect. переписать. – grab

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