/ / Mod_rewrite .htm към фалшива поддиректория - Apache,

Mod_rewrite .htm към фалшива поддиректория - apache, .htaccess, mod-rewrite

Имам уебсайт с CMS, който използва mod_rewriteда направи URL-ите по-чисти. Преди това чистите URL адреси имаха разширение .htm, но искам да го прехвърля към тях, които се показват като фалшиви поддиректории, т.е.

http://www.example.com/pagename/

Имам две правила за пренаписване, за да препиша старата схема и потенциалната нова:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ index.php?page=$1 [QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ index.php?page=$1 [QSA]

Моят проблем е, че правилото, което се опитах да използвам за пренасочване на стари URL адреси към нови, не прави нищо.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ $1/ [R=302,NC,QSA]

Отговори:

1 за отговор № 1

Не можете да използвате две правила със същия моделтъй като ще се прилага само първата от тях. Опитайте се да замените правилото си „rewrite“ с новото правило „пренасочване“, за да пренасочите старите URL адреси вместо просто пренаписани:

# redirect foo.htm to foo/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ $1/ [R=301,NC]
# rewrite foo/ to index.php?page=foo
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ index.php?page=$1 [QSA]