2016-03-18 2 views
0

Хорошо, так что единственный способ изменить ссылки, чтобы не показывать расширения файлов;Silly 404 Использование страницы?

это yourwebsite.com/customlink.php к yourwebsite.com/customlink

либо создать папку с именем customlink и толкая индексный файл там. Или создайте страницу 404, которая отслеживает URL-адрес и захватывает любую строку за последним / и делает все, чтобы показать правильный контент.

Мой вопрос в том, что этот способ решения проблемы прямо идиотский, или нет? Я делаю это, потому что, на мой взгляд, это экономит место, позвольте мне объяснить: каждая страница, которая нуждается в customlink, одинакова с некоторыми битами и содержимым, взятыми из других мест, поэтому вместо создания X количества папок и индексных файлов, которые включают главный файл, у меня будет только один файл 404, который сможет его обработать.

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

+1

Я не думаю, что это вообще помечено. –

+0

Правильный способ сделать это - либо позволить MultiViews выполнять свою работу (может иметь побочные эффекты), либо использовать mod_rewrite. Или, в Apache 2.4, ['FallbackResource'] (http://httpd.apache.org/docs/2.4/en/mod/mod_dir.html#fallbackresource). Неправильное использование документа ошибки 404 для этого, скорее всего, наполнит ваш журнал ошибок 404 сообщениями. – CBroe

+1

Возможный дубликат [Ссылка: mod \ _rewrite, URL rewriting и "pretty links" пояснили] (http://stackoverflow.com/questions/20563772/reference-mod-rewrite-url-rewriting-and-pretty-links-explained) – chris85

ответ

0

Более общий подход к маршрутизации всех HTTP запросов к одному index.php с использованием mod_rewrite в .htaccess.

Затем, на основе запрошенного ресурса, index.php выводит соответствующий файл, независимо от того, создан он из базы данных или вложен в какую-либо другую папку.

Возможно, вам не удастся использовать страницу 404 (страница с ошибкой) для чего-либо иного, кроме экземпляров «Файл не найден».

2

Как вы не упомянули, на каком сервере работают ваши страницы (Apache, IIS, ...?), Я просто возьму Apache.

Поместите файл .htaccess в корневом каталоге вашего сайта со следующим содержанием:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Он внутренне перезаписать все без расширения к соответствующему PHP файла, при условии, что:

  • запрос не является действительным справочником
  • файл с расширением php фактически присутствует
Смежные вопросы