Имам лош ден .htaccess!
Искам потребител да може да въведе URL адреса
mysite.com/about
вместо
mysite.com/about.html
Във файла .htaccess имам:
RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^/(.*)$ /$1.html [NC,L]
Но това просто не работи?
Ще добавя обаче, че ако пробвам това по-нататък в сайта напр.
mysite.com/pages/contact
Работи перфектно, независимо дали имам горния код в .htaccess или не
Какво правя погрешно?
- Не директно решение, но преместването на файла в about / index.html ви дава същия резултат.
- 1 Не трябва да има водеща наклонена черта при съвпадение в RewriteRule, ако е поставено в .htaccess. Опитайте тази:
RewriteRule ^(.*)$ /$1.html [NC,L]
- Освен това, вместо да използвате mod_rewrite, можете да погледнете
Options
директива,MultiViews
по-специално: httpd.apache.org/docs/current/mod/core.html#options
просто избягвайте наклонени черти преди съвпадение на модели и дестинация. Така,
RewriteEngine On RewriteBase / RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ $1.html [NC,L]
трябва да работи перфектно.