Проблемы при создании симпатичного URL, который использует реальные URL сайта - PullRequest
0 голосов
/ 12 марта 2011

Я хочу создать функциональность, аналогичную сайту downforeveryoneorjustme.com. Они используют симпатичный URL, чтобы взять URL любого данного сайта. Я уверен, что они используют htaccess, чтобы сделать это, однако метод, который я использую, сталкивается с проблемами.

Это мой файл .htaccess, который я использую для отправки URL-адреса сайта в файл .php:

RewriteEngine on

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

RewriteRule ^(.+)?$ /file.php?var=$1

Однако, когда я набираю что-то вроде mysite.com/http://google.com переменная, которую он отправляет в файл http:/google.com (без косой черты). Я не могу понять, почему это происходит.

Кроме того, когда я набираю что-то вроде mysite.com/existingfolder, где existingfolder - это папка на моем сайте, она всегда работает неправильно. Переменная, передаваемая в файл, missing.html вместо existingfolder. В этом случае файл не отображает изображения. Изображение не может быть найдено, и я предполагаю его, потому что он ищет изображение в неправильной папке на сайте. Что он может думать, что он находится в existingfolder, а не в обычной папке, в которой он должен быть.

Кто-нибудь знает, почему у меня возникают эти проблемы? Я знал, что получить доступ, и я предполагаю, что это как-то связано с этим.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 13 марта 2011

Я уверен, что они используют htaccess для этого

Я нет. Я даже не уверен, что они используют Apache.

mod_rewrite не всегда является ответом на все проблемы обработки URL. Это, безусловно, склонно к некоторым особенностям обработки URL на основе пути, включая удаление двойной косой черты.

Я предлагаю читать специфическую для Apache переменную REQUEST_URI из вашего скрипта, а не полагаться на перезапись для получения параметра. Это даст вам путь, запрошенный браузером, без какой-либо обработки.

...