.htaccess работает с несколькими SEO-дружественными URL - PullRequest
0 голосов
/ 11 февраля 2011

Мне не удается решить, как прикрепить несколько "дружественных URL" к моему новому проекту.

Раньше мне никогда не приходилось работать с несколькими, поэтому я не знаю с чего начать. У меня была игра, но я ничего не мог придумать.

Оригинальный скрипт для одного:

RewriteEngine on
RewriteCond   %{REQUEST_URI} \/([0-9a-z]{1,9})$ [NC]
RewriteRule   ^(.*) http://mysite.me/?%1 [L]

Я хочу сохранить этот точный, но мне нужно больше для обработки других файлов, таких как еще несколько строк для этого метода;

view.php?p=46345 в mysite.me/view/46345

Надеюсь, вы можете помочь, Спасибо!

1 Ответ

1 голос
/ 11 февраля 2011

Я рекомендую вам делать все это в вашем коде, а не в Apache. Просто перенаправьте все запросы в один файл (index.php или любой другой файл DirectoryIndex), а затем изучите URL-адрес в коде и преобразуйте его в нужную форму. Затем верните 301 с преобразованным URL. Если вы хотите, вы можете пропустить этот процесс для файлов, которые действительно существуют. Это позволит избежать накладных расходов на запрашиваемые активы.

Вот пример .htaccess, который делает это:

Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On

# check if the file exists. if it doesn't redirect to your main file
# comment out the RewriteCond if you don't want to skip index.php for existing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
...