Можно ли переписать URL-адрес при посадке? [Дубликат]

Если вы не прочь от сторонних модулей, вы можете проверить модуль fastnumbers . Он предоставляет функцию, называемую fast_real , которая делает именно то, что задает этот вопрос, и делает это быстрее, чем реализация pure-Python:

>>> from fastnumbers import fast_real
>>> fast_real("545.2222")
545.2222
>>> type(fast_real("545.2222"))
float
>>> fast_real("31")
31
>>> type(fast_real("31"))
int

74
задан Peter Mortensen 31 May 2014 в 18:30
поделиться

12 ответов

Ответ Gumbo в вопросе переполнения стека Как скрыть расширение .html с помощью Apache mod_rewrite должно работать нормально.

Re 1) Измените .html to .php

Re a.) Возможно, просто добавьте #tab в URL.

Re b.) Это возможно с помощью QSA (Query String Append), см. Ниже.

Этот должен также работать в пути подкаталога:

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
94
ответ дан Andy 28 August 2018 в 06:18
поделиться
62
ответ дан hjpotter92 28 August 2018 в 06:18
поделиться

Я нашел 100% рабочую концепцию для меня:

# Options is required by Many Hosting
Options +MultiViews

RewriteEngine on

# For .php & .html URL's:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]

Используйте этот код в Корне вашего сайта .htaccess файл, например:

offline - wamp \ www \ YourWebDir

online - public_html /

Если это не работает правильно, измените настройки вашего Wamp Server: 1) Щелкните левой кнопкой мыши значок WAMP 2) Apache 3) Apache Modules 4) Левый клик rewrite_module

1
ответ дан Irshad Khan 28 August 2018 в 06:18
поделиться

Не знаю, почему другие ответы не сработали для меня, но этот код, который я нашел, сделал:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Это все, что есть в моем htaccess и example.com/page показывает example.com /page.php

2
ответ дан jdphenix 28 August 2018 в 06:18
поделиться

Если ваш URL-адрес в PHP, например http://yourdomain.com/demo.php , больше похоже на http://yourdomain.com/demo

Это все, что вам нужно:

создать файл .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
1
ответ дан Kamlesh 28 August 2018 в 06:18
поделиться

Следующий код работает отлично для меня:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
19
ответ дан Mark Seemann 28 August 2018 в 06:18
поделиться

Если вы кодируете на PHP и хотите удалить .php, чтобы у вас был URL-адрес:

http://yourdomain.com/blah -> который указывает на /blah.php

Это все, что вам нужно:

<IfModule mod_rewrite.c>
    RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
2
ответ дан Peter Mortensen 28 August 2018 в 06:18
поделиться

Вот код, который я использовал, чтобы скрыть расширение .php от имени файла:

## hide .php extension
# To redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L,NC]

Примечание: R=301 предназначен для постоянной перенаправления и рекомендуется использовать для целей SEO. Однако, если требуется только временное перенаправление, замените его только R

1
ответ дан Rahul Gupta 28 August 2018 в 06:18
поделиться

После изменения параметра AllowOverride с None на All в /etc/apache2/apache2.conf (Debian 8), после этого , файл .htaccess должен содержать:

Options +MultiViews
AddHandler php5-script php
AddType text/html php

И этого было достаточно, чтобы скрыть расширение .php из файлов

7
ответ дан Rodney Salcedo 28 August 2018 в 06:18
поделиться

Чтобы удалить расширение .php из файла PHP, например yoursite.com/about.php, на ваш сайт.com/about Выполните следующие действия. Откройте файл .htaccess (создайте новый, если он не существует) из корневого каталога вашего сайта и добавьте следующий код.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Чтобы удалить расширение .html из html-файла, например yoursite.com/ about.html tosite.com/about Следуйте этим шагам.

Откройте файл .htaccess (создайте новый, если он не существует) из корневого каталога вашего сайта и добавьте следующий код.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

Ссылка: Как удалить расширение php из URL

3
ответ дан Sanjeev Kumar 28 August 2018 в 06:18
поделиться

В дополнение к другим ответам выше,

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

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

Этот код будет работайте в Root / .htaccess. Обязательно измените RewriteBase, если вы хотите поместить его в файл htaccess в подкаталоге.

Изменить:

На apache 2.4 и более поздних версиях вы также может использовать флаг END для предотвращения ошибки бесконечного цикла. Следующий пример работает так же, как и выше, на apache 2.4,

RewriteEngine on

RewriteRule ^(.+)\.php$ /$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,END]
34
ответ дан starkeen 28 August 2018 в 06:18
поделиться

Вот метод, если вы хотите сделать это только для одного конкретного файла:

RewriteRule ^about$ about.php [L]

Ссылка: http://css-tricks.com/snippets/htaccess/remove-file -extention-из-адресов /

12
ответ дан Susan 28 August 2018 в 06:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: