Ես Magento-ի տեղադրում ունեմ և մտածում էի, թե ինչպես կարող եմ domain.tld/index.php վերահղում դեպի domain.tld:
Ես ուզում եմ հեռացնել index.php-ը, իսկ հետո 301-ը վերադառնալ արմատին: Ես ունեմ շատ հին հղումներ, որոնք ինձ տալիս են կրկնօրինակ բովանդակություն և տգեղ url և այլն: Հին հղումի օրինակ.
domain.tld/index.php?controller=best_sales
.htaccess-ում ես ունեմ հետևյալը, և այն չի աշխատում
RewriteRule .* index.php [L]
շնորհակալություն :)
Խմբագրել:
Շնորհակալություն երկուսիդ էլ պատասխանների համար, բայց ես դեռ չեմ կարողանում այն գործի դնել: Ես ստանում եմ 404 - Չգտնվեց, երբ փորձում եմ որևէ փոփոխություն կատարել:
Սա իմ ամբողջական .htaccess-ն է, միգուցե կան որոշ սխալներ կամ miss-configurations, որոնք չեն ստիպում այն աշխատել:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
// REMOVE HOME REWRITE FROM MAGENTO
RewriteRule ^home/?$ /? [R=301,L,NC]
// ADD WWW TO NONE WWW FOR BOTH HTTPS AND NONE HTTPS
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
// REDIRECT ALL .HTML FILES AND ALL .HTML/ FILES WITH TRAILING SLASH
RewriteRule ^google[0-9a-f]+.html$ - [L]
RewriteRule (.+)\.html$ /$1/ [L,R=301]
RewriteRule (.+)\.html\/$ /$1/ [L,R=301]
// ADD TRAILING SLASH
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
// TRAILING SLASH CHECK
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]
// CHECK IF REDIRECT POINTS TO A VALID FILE
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
// SEND TO INDEX.PHP FOR CLEAN URLS
#RewriteRule ^(.*)$ index.php? /$1 [L,QSA]
#REWRITE EVERYTHING ELSE TO INDEX.PHP
RewriteRule .* index.php [L]
RewriteBase /
տողից անմիջապես հետո: 05.08.2014RewriteRule ^(.*?)index\.php$ /$1? [L,R=302,NC,NE]
ի նման՝ հարցման տողը հանելու համար: Դուք կարող եք օգտագործել այս կանոնը նաև root .htaccess-ում: 06.08.2014RewriteCond %{THE_REQUEST} \s+/index\.php [NC]
միայն արմատական նպատակային համար: 06.08.2014