2017-05-04 4 views
1

Ich habe vor kurzem erstellen Sie die. Htaccess die URL für SEO freundlich umschreiben. Die URL funktioniert einwandfrei. Aber die URL, die ich zugewiesen habe, beeinflusst die URL anderer. Die .htaccess Datei ist in Abb. Wenn die Betreffdatei ausgeführt wird. Die URL wird wie Klasse/Physik sein Wenn ich auf eine andere Datei auf der Betreff-Seite klicke. Vor dem Ändern der URL ist die Anmeldeseite url login.php. Nach dem Ändern des Namens einer anderen Datei bewirkt sie auch die login.php wie eine class/login.php, was ärgerlich ist. Hilf mir, dieses Problem zu lösen. .htaccess Wirkung die andere URL auf Datei

<Files .htaccess> 
 
order allow,deny 
 
</Files> 
 
Options +FollowSymLinks 
 
RewriteEngine On 
 

 
#--exclude real directories 
 
RewriteCond %{REQUEST_FILENAME} !-d 
 
#--and files 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteRule ^(\w+)/(\w+)$ ./subject.php?class=$1&subject=$2 [NC,L]

+0

die Frage ist schwer zu verstehen, können Sie Ihre URL und eine Ziel-URL geben? Was ich aus der Frage verstehen kann, ist, dass Sie http://example.com/subject.php?class=some&subject=thing => http://example.com/some/thing bin ich richtig? – ad08

Antwort

0

Es sieht aus wie Sie ein Problem mit relativen URLs haben. Wenn auf der /class/physics Seite (oder URL), die Sie haben einen relativ Link zu login.php dann wird dies natürlich auf das /class/ „Verzeichnis“ relativ sein (wie es auf der Client-Seite angezeigt wird), so dass die resultierende URL ist /class/login.php, nicht /login.php Das scheint deine Absicht zu sein.

Im Idealfall müssen Sie Ihre URLs root-relativ machen (beginnend mit einem Schrägstrich) z. /login.php. (Oder auch absolut, mit einem Schema + Host-Namen.)

Alternativ kann, wie Abhilfe können Sie verwenden, um das base Element im head Abschnitt User-Agents zu informieren, was die relative URL ist relativ zu. Zum Beispiel wird, wenn dieser URLs sein soll relativ zum Dokumenten-Stamm dann:

<base href="http://example.com/"> 

Beachten Sie jedoch, gibt es einige Einschränkungen mit dem base-Tag. Insbesondere wenn Sie interne Anker verwenden, z. #top, dann ist dies jetzt relativ zu der base URL. (Und das bricht auf IE6 ohne einen Hack.)

Ihre alten URLs (dh. /subject.php?class=abc&subject=abc) scheinen alle in der Dokumentwurzel zu sein, so dass Ihre relativen Links kein Problem waren.

+0

Danke es ist gelöst ........ –