Perl - Linux - Как мне сделать мой "index.pl?see=this&foo=that&bar=that" url красивым?(index.pl/(see value)? - PullRequest
0 голосов
/ 04 января 2011

Я читал и изо всех сил безрезультатно.

У меня есть такой URL-адрес: http://my-domain.com/index.pl?see=this&foo=that&bar=that

Я бы хотел, чтобы ti отображалось так:

http://my-domain.com/index.pl/this

Теперь позвольте мне выбросить это!

Значение "видеть" должно быть "дружественным".Но, видение может быть расположено в другом месте в URL!

например: http://my-domain.com/index.pl?foo=that&see=this&bar=that

(можно получить доступ через http://www или без www.)

Я читал кучу постов здесь и в других местах, но не нашел ничего, что объяснило бы это мне примером, который я мог бы понять.

Я бы даже хотел сбросить «.pl», если вообще возможно!

Извините, такой нуб ... Мне нужна помощь.

Вот весь файл htaccess, который у меня есть:

RewriteEngine on
RewriteRule ^/index.html$ /index.pl [L]
RewriteRule index/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/$ /index.pl?$1=$2&$3=$4&$5=$6

Я также пытался указать index.htmlto index.pl

Спасибо ..

Ответы [ 3 ]

2 голосов
/ 04 января 2011

Вы ищете mod_rewrite, если вы используете Apache.Это не имеет ничего общего с Perl:)

http://httpd.apache.org/docs/trunk/mod/mod_rewrite.html

1 голос
/ 04 января 2011

Возможно, вам лучше передать параметры URL в сценарий и выполнить остальную часть обработки, поскольку это даст вам большую гибкость и вы будете иметь дело с Perl, а не усложняете свои правила mod_rewrite. Нечто подобное в вашем .htaccess файле должно помочь:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /path/to/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^request(/.*)?$ /path/to/index.pl [L]
</IfModule>

Директивы RewriteCond предназначены для предотвращения перезаписи путей к существующим файлам и каталогам. Если вы должны удалить их, убедитесь, что путь к index.pl не переписан, или mod_rewrite будет зацикливаться при каждом запросе.

Затем вы можете захватить все $ENV{REQUEST_URI} внутри вашего index.pl, разбить строку на слешах и проверить и соответствующим образом назначить свои аргументы.

Примечание: я не советую использовать index для пути запроса, потому что конфигурация Apache по умолчанию может переопределить это ключевое слово (как это происходит в моем случае).

0 голосов
/ 04 января 2011

Вы можете использовать интерфейс REST:

http://my-domain.com/index.pl/see/this

или

http://my-domain.com/index.pl/this

В основном у вас есть скрипт index.pl (или переименовывается в него по вашему желанию), который просматривает URL-путь при каждом запросе ($ ENV {REQUEST_URI})

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