2016-10-30 3 views
0

Ich habe diese htaccess Regelerlauben ein beliebiges Zeichen in .htaccess Query-String-Validierung (nicht-englische Zeichen)

RewriteRule ^page/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/(.*)/([0-9a-zA-Z_-_]+) 
/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)$ page.php?lang=$1&search=$2&state_type=$3&city=$4 
&stats=$5&area=$6&cost=$7 [NC,L] 

Die vierte Abfrage-String in Arabisch ist, und ich will so lange wie alle Zeichen ermöglichen [0 -9a-zA-Z_-] validiert nur gegen englische Zeichen. Wenn ich (. *) Benutze, erlaubt es alle englischen Zeichen, aber wenn ich arabische Zeichen einfüge, bekomme ich einen 404 Fehler. Wie kann man zulassen, dass irgendwelche Zeichen in der htaccess-Validierungsregel arabische Werte erhalten?

[UPDATE] die .htaccess-Regel geändert:

RewriteRule ^page/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ page.php?lang=$1&search=$2& 
state_type=$3&city=$4&stats=$5&area=$6&cost=$7 [NC,L] 

Jetzt aber ich habe nicht die 404-Fehler, wenn ich den Query-String-Wert (der in Arabisch ist) echo ich leer Wert bekommen und wenn Ich ändere es auf Englisch, es funktioniert gut. Ich habe versucht, alle Query-String-Werte auf Arabisch zu ändern und habe das gleiche Ergebnis: leer wie es überhaupt nicht ist.

Antwort

2

Versuchen

RewriteRule ^page/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ page.php?lang=$1&search=$2&state_type=$3&city=$4&stats=$5&area=$6&cost=$7 [B,NC,L] 

. so zu gierig ist, ob irgendwelche nur das kein / ist. Das Flag B wandelt dekodierte Zeichen zurück in maskierte Zeichen, die für eine Abfragezeichenfolge geeignet sind.

+0

noch leerer Wert. Ich habe diesen Code, bevor es irgendein Problem macht? RewriteEngine auf RewriteCond% {HTTP_HOST}^arab-aqar \ .com [NC] RewriteRule^(. *) $ Mydomain.com/$1 [L, R = 301, NC] RewriteCond% {HTTPS} auf RewriteCond% {HTTP_HOST}^arab-aqar \ .com [NC] RewriteCond% {HTTPS} aus RewriteRule^(. *) $ https: //% {HTTP_HOST}% {REQUEST_URI} #, um home statt index.php zu verwenden RewriteRule^home $ index. PHP [NC, L] - PHP Benutzer vor 41 Minuten Bearbeiten –

+0

Öffnen Sie Ihr Netzwerk-Panel in Ihrem Browser-Debugger, um die tatsächlichen Anfrage Header zu sehen gesendet werden. Setzen Sie alle 7 Parameter in Ihre Test-URL? Sie sind alle erforderlich, damit die Regel übereinstimmt. 'var_dump ($ _ SERVER ['REQUEST_URI'], $ _GET);' am Anfang von 'page.php', um zu sehen, welche URL angezeigt wird und welche Parameter der Abfragezeichenfolge von Ihrer Regel festgelegt wurden. – Walf

+0

string (90) "/ seite/ar/suche/10/kairo/für_rente /% D8% B9% D8% B1% D8% A8% D9% 8A /% D8% B9% D8% B1% D8% A8% D9 % 8A "array (7) {[" lang "] => string (2)" ar "[" search "] => string (6)" search "[" state_type "] => string (2)" 10 " ["city"] => string (5) "cairo" ["stats"] => string (8) "für_rent" ["area"] => string (8) "عربي" ["cost"] => string (8) "عربي"} –

Verwandte Themen