2016-05-04 5 views
2

Ich arbeite an einer PHP-Anwendung, in der ich Forward-Schrägstrich anstelle von Fragezeichen in Get-Anforderung verwenden muss. Wie:Wie senden Sie Anfrage mit Schrägstrich statt Fragezeichen?

www.example.com/article?aid=10 & aname = my-Artikel

sollte

www.example.com/article/10 geändert werden/my-Artikel

Es folgt mein .htaccess:

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ http://example.com/$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ http://example.com/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^articles/(.*)$ articles?q=$1 [L,QSA,B] 

Ich habe viel versucht, aber nicht in der Lage, eine Lösung zu finden. Wie kann das gemacht werden?

Antwort

0

Sie können wie etwas tun, dass

RewriteRule ([^/\.]+)/([^/\.]+)/?$ page.php?level1=$1&level2=$2 [L] 

Die level dann Ihre vollständige URL der

dann auf der Seite / Symbol getrennt beschreiben hypothetisch genannt page.php Sie tun können:

$firstParameter = $_REQUEST["level1"]; 

In Ihrem c ase können Sie tun:

RewriteRule article/([^/\.]+)/([^/\.]+)/?$ article?aid=$1&aname=$2 [L] 

Dann wird Ihre URL sein /article/foo/bar

N. B.

ich normalerweise RewriteBase / verwenden, um die grundlegenden Rewrite zu haben, mit /, Es ist zu setzen, so:

Options +FollowSymLinks 
RewriteBase/

RewriteEngine On 
+0

Ich möchte umwandeln/Artikel? Aid = foo & aname = bar zu/artikel/foo/bar –

+0

@VishalSuri - Sie können alles damit machen. Sie können so viele Ebenen haben, wie Sie möchten. Page.php ist nur ein Beispiel für die Zielseite, auf der Sie Informationen abrufen können. Wenn Ihre Datei "article" heißt, kein Problem, dann ruft der Name von "levels" sie wie gewünscht auf, zB 'aid',' aname'. Ich habe Update mein Beitrag –

+1

Vielen Dank. Das funktioniert gut. –

0

Sie diese Regel verwenden kann /article/foo/bar zu /neu zu schreiben Artikel? aid = foo & aname = bar Fügen Sie die folgenden rechts unten RewriteEngine auf

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^article/([^/]*)/([^/]+)/?$ /article?aid=$1&aname=$2 [L,QSA,B] 
Verwandte Themen