Параметры WordPress URL на GoDaddy - PullRequest
1 голос
/ 11 ноября 2011

Я сейчас создаю сайт (http://tannernelson.me/ehs)

Он размещен на Godaddy, и я использую WordPress в качестве CMS.

Я хочу иметь возможность:

http://tannernelson.me/ehs/school/academics/teachers/jsmith

превращается в

http://tannernelson.me/ehs/index.php?pagename=teachers&detail=jsmith

Итак, в принципе, если в URL есть 4 сегмента (школа / академик / учителя / jsmith), я хочу, чтобы последний был переменной. Таким образом, четвертый сегмент любого URL будет переменной "detail"

Мой текущий URL переписан в настоящее время

# Mod Rewrite
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ehs/index.php [L]
Options -Multiviews

Он не будет работать по-другому, даже с файлом WordPress .htaccess по умолчанию. И я понятия не имею, что это значит, или какой URI запроса сделан из него. Это действительно сбивает с толку.

Есть идеи?

1 Ответ

2 голосов
/ 11 ноября 2011

Код, который вы сейчас имеете, означает:

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

Если запрашиваемое имя файла не (!), обычный файл -f и если запрашиваемое имя файла не является (!) каталогом -d, тогда:

RewriteRule . /ehs/index.php [L]

Соответствует любому отдельному символу (.) и, если найдено совпадение, переписывает URL-адрес на /ehs/index.php изатем сделайте это последним правилом ([L]), поэтому не обрабатывайте дальнейшие правила.

Это не похоже на то, что вы хотите, но, похоже, работает.http://tannernelson.me/ehs/school/academics/teachers/jsmith обслуживает (я думаю) http://tannernelson.me/ehs/index.php, потому что я получаю пользовательскую страницу 404. Не найден.

Попробуйте следующий .htaccess код:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# Redirect the ehs/school/academics/$1/$2 URIs to /ehs/index.php?pagename=$1&detail=$2
RewriteRule ^ehs/school/academics/([^/]+)/([^/]+)$ /ehs/index.php?pagename=$1&detail=$2 [L]

# Otherwise if the requested URI is not found (not a file nor a directory)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#Redirect everything else to index.php
RewriteRule .* /ehs/index.php [L]

Options -Multiviews

Я только что проверил это намой сервер Apache и он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...