Domanda

Ho un file ajax che viene chiamato quando qualcuno inizia a digitare nella barra di ricerca. Sono stato di recente ripulendo i miei URL e la rimozione di estensioni di file aggiungendo slash, da allora il mio file ajax doesnt sembrano più caricare. Chiunque può aiutare? qui il mio .htaccess finora

Options +FollowSymlinks
Options +Indexes
RewriteEngine on


RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^([^.]+)\.php$ /$1 [R=301,L]
È stato utile?

Soluzione

Supponendo che le vostre richieste AJAX selezionare la cartella /includes, e le pagine normali non, siamo in grado di modificare le regole un po 'in modo che essi appaiono così (tra cui commento CAG sulla RewriteCond):

Options +FollowSymlinks
Options +Indexes

RewriteEngine on

# We'll do the redirect first, so no other rules get in the way
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^.#?\ ]+)\.php([#?][^\ ]*)?\ HTTP/
# Make sure the request didn't start with "includes"
RewriteCond %1 !^includes/
RewriteRule ^([^.]+)\.php$ /$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ $1.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

Penso anche che si sia voluto /? alla fine delle regole del blocco centrale, o /$1/ come la sostituzione sulla regola nel primo blocco, in modo che il reindirizzamento da /page.php a /page viene interpretata correttamente dopo il primo redirect (Penso che in questo momento si otterrà reindirizzato due volte, una per il primo blocco, e di nuovo dal l'ultimo blocco).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top