.htaccess

Al

Registered
Здравейте ,
Искам да направя самото разширение .html да го няма примерно ако е services.html да ми го отваря /services/.

Но явно има грешка в кода ми.
Код:
# Спира MultiViews (за да може /abc да го търси като /abc.ext преди /abc/)
Options +FollowSymLinks -MultiViews

DirectoryIndex index.html

# Спира mod_dir, за да не добавя наклонена черта в края.
DirectorySlash Off

RewriteEngine On

# Ако търси /index или /index.html
RewriteCond %{THE_REQUEST} \ /(.+/)?index(\.html)?(\?.*)?\  [NC]
# го изтрива и оставя само /
RewriteRule ^(.+/)?index(\.html)?$ /%1 [R=301,L]

# Добавя наклонена черта в края на директория, ако няма файл с .html
# Ако търси директория
RewriteCond %{SCRIPT_FILENAME}/ -d
# и няма html файл с такова име
RewriteCond %{SCRIPT_FILENAME}.htm !-f
# и няма наклонена черта, я добавя.
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]

# Изтрива HTML разширения
# Ако това е заявка от браузър (а не от Apache/mod_rewrite)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
# и заявката има HTML разширение, го изтрива.
RewriteRule ^(.+)\.htm$ /$1 [R=301,L]

# Ако в заявката има .html разширение
RewriteCond %{SCRIPT_FILENAME}.htm -f
# и няма наклонена черта, добавя .html
RewriteRule [^/]$ %{REQUEST_URI}.htm [QSA,L]

Ето това ползвам като цяло
 
По принцип е това .. добави го и пробвай:
Код:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
//Можеш да промени html с друго разширение ако е нужно - php, htm, asp ...
 
направи нов .htaccess и сложи само това за да пробваме ..
Код:
RewriteEngine On
RewriteRule ^(.*)\.html?$ /$1 [L]

така ако напишеш index.html ще стане (вместо index.php).. :idea:
 
Преместих темата PHP MySQL ASP.NET, защото въпроса повече от към сървърната част.

Пробвай така
Код:
RewriteEngine On

RewriteCond %{REQUEST_URI} !^.*content/[^/]*\.html$
RewriteRule ^(.*)$ content/$1\.html [L]
 
deam0n каза:
Преместих темата PHP MySQL ASP.NET, защото въпроса повече от към сървърната част.

Пробвай така
Код:
RewriteEngine On

RewriteCond %{REQUEST_URI} !^.*content/[^/]*\.html$
RewriteRule ^(.*)$ content/$1\.html [L]

Не става
 
Al каза:
deam0n каза:
Преместих темата PHP MySQL ASP.NET, защото въпроса повече от към сървърната част.

Пробвай така
Код:
RewriteEngine On

RewriteCond %{REQUEST_URI} !^.*content/[^/]*\.html$
RewriteRule ^(.*)$ content/$1\.html [L]

Не става

Къде ти е качен сайта?
 
Сайта ти в субдиректория ли ?
sait.com/drugsait.com/ ?

edit:
Току що пробвах това и работи при мен:
http://localhost/fail.php --> http://localhost/fail
Код:
RewriteEngine on

rewriteCond %{THE_REQUEST} ^GET\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/
rewriteRule ^(([^/]+/)*[^.]+)\.php$ http://SAITA.TI/$1 [R=301,L]
rewriteCond %{REQUEST_URI} !(\.¦/$)

rewriteCond %{REQUEST_FILENAME}.php -f
rewriteRule (.+) /$1.php [L]

Замени SAITA.TI със сайта си.
Ще е проблем ако сайта е на субдиректория ... там няма да работи.
 

Back
Горе