проблемы с mod_rewrite - PullRequest
       15

проблемы с mod_rewrite

0 голосов
/ 04 августа 2011

У меня сейчас есть .htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^page/(.*)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L]

Когда я захожу на http://localhost/type1/page/home/play, он работает нормально, однако я хотел бы вывести /page/, поэтому он равен http://localhost/type1/home/play

Я пробовал следующее:

RewriteRule ^(.*)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L]

однако некоторые изображения, кажется, исчезают, а некоторые нет.

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

Я не уверен, является ли это абсолютной / относительной проблемой, так как мой CSS записан как

<link href="http://localhost/type1/global.css" rel="stylesheet" type="text/css" /> 

и ссылки кажутся полными ссылками, когда я проверяю их в своем браузере!?

Любая помощь будет отличной

1 Ответ

1 голос
/ 05 августа 2011

Как я понимаю, файл .htaccess находится в подпапке /type1/. Попробуйте эти правила:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L,QSA]
  1. Используемый вами шаблон (.*) слишком широк для первого параметра, вместо него я использую ([^/]+) (любой символ, кроме косой черты).

  2. Добавлено 2 условия перезаписи .. поэтому будут переписаны только запросы к несуществующим файлам и папкам. Это должно помочь с исчезнувшими изображениями (или нет - все зависит от того, как написаны ссылки).

  3. Добавлен флаг QSA для сохранения любой существующей строки запроса.

...