.htaccess umleiten wenn keine query-string vorhanden ist?
Habe ich die folgenden .htaccess zu präsentieren.
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/abc/php.ini
</IfModule>
RewriteEngine on
RewriteCond $1 !^(index\.php|media|css|js|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
AuthType Basic
AuthName "Está dominado!!"
AuthUserFile "/home/abc/.htpasswds/public_html/passwd"
require valid-user
Nun die Sache ist die, ich möchte, wenn eine query string gefunden wird, nach einem /entfernen, die Abfrage-string.
So:
Wenn wir haben:
http://www.abc.com/?somethinghere234
Es sollte eine Weiterleitung zu:
http://www.abc.com/
Wenn wir haben:
htpp://www.abc.com/etwas/?id212
Umleitung zu:
htpp://www.abc.com/etwas/
UPDATE:
Ich hab das versucht:
VERSUCHEN A)
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule .* /index.php/[L,QSA]
Hopping, dass ^(.*)$ alles ermöglicht, die auf den query-string...
Hab ich auch so probiert:
VERSUCHEN B)
RewriteEngine on RewriteCond $1
!^(index.php/media/css/js/images/robots.txt)
RewriteCond %{QUERY_STRING} ^(.)$
RewriteRule ^(.)$ http://abc.com/ [L]
Dieser gibt einen 500 internal server error.
VERSUCHEN C)
RewriteEngine on
RewriteCond $1 !^(index\.php|media|css|js|images|robots\.txt)
#RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ http://abc.com/[R=302,L]
Ich gestehe, ich bin ein bisschen verloren auf diese .htaccess Syntax.
VERSUCHEN D)
RewriteEngine on
RewriteCond $1 !^(index\.php|media|css|js|images|robots\.txt)
RewriteCond %{REQUEST_URI} !^/
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ http://abc.com/[R=302,L]
Bitte um Rat,
MEM
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten die folgenden arbeiten:
Aus der Apache-Dokumentation:
EDIT (nochmal): Als externer redirect (können Sie nicht sogar brauchen, die zweite RewriteCond wenn Sie noch keine query-string an alle, die in Ihrer Anwendung):
Dies teilt der client zum anfordern der gleichen URI ohne query-string.
Ich war nicht sicher, von deiner Beschreibung her genau das, was Sie nachher waren, so dass Sie sollte halten, oder entfernen Sie die zweite RewriteCond je nach Ihren spezifischen Bedürfnissen.
AcceptPathInfo On
zu Ihr .htaccess-Datei, oder entfernen Sie die/$1
in der zweiten RewriteRule und ändern$config['uri_protocol']
zuREQUEST_URI
in Ihre CodeIgniter-Konfiguration.REQUEST_URI
dann ist es am besten, um loszuwerden, das/$1
Teil eh wie es ist unnötig. CodeIgniter wird, ignorieren Sie die PATH_INFO-Teil bietet es zugunsten der Betrachtung$_SERVER['REQUEST_URI']
.Vielleicht, weil Sie haben QSA Hinzugefügt - es bedeutet Query-String Anhängen.