/ / htaccess leitet das root in das Unterverzeichnis um, erlaubt aber index.php im root zu funktionieren - php, wordpress, apache, .htaccess, joomla

htaccess leitet Root zum Unterverzeichnis um, erlaubt aber index.php im root zu funktionieren - php, wordpress, apache, .htaccess, joomla

Das ist unsere Situation: Der ursprüngliche Domainname (z. B. www.example.com) wurde in WordPress erstellt und im Stammverzeichnis installiert. Wir haben eine neue Website mit Joomla erstellt und in ein Unterverzeichnis (z. B. www.example.com/PORTALsite) gestellt.

Mit diesem Code in htaccess konnte ich den Root (www.example.com/) erfolgreich in dieses Unterverzeichnis (www.example.com/PORTALsite) umleiten:

RewriteEngine on
RewriteRule ^$ http://www.example.com/PORTALsite [R=301,L]

Das funktioniert gut, AUSSER dass wir das Original brauchenWordPress-Website (die Startseite unter www.example.com/index.php) funktioniert weiterhin. Wir brauchen das, weil wir Hunderte von Seiten innerhalb dieser WordPress-Seite haben, die in den Suchmaschinen indiziert sind und wir wollen, dass all diese alten Inhalte weiterhin funktionieren.

Der obige Code funktioniert gut für alle Dateien undUnterverzeichnisse innerhalb des Root, so dass unser alter Inhalt weiterhin funktioniert und der Root selbst (www.example.com/) korrekt auf das neue Unterverzeichnis der Joomla Website (www.example.com/PORTALsite) umgeleitet wird .

Das Problem ist jedoch: Wir brauchen noch die alte index.php Datei der WordPress Website, wenn sie direkt aufgerufen wird (dh wenn jemand in www.example.com/index.php tippt), ABER es funktioniert NICHT. example.com/index.php wird auch auf www.example.com/PORTALsite weitergeleitet, obwohl alle anderen Dateien im root immer noch so funktionieren, wie wir es wollten.

Lassen Sie mich sicherstellen, dass ich das richtig erkläre: Wenn jemand unsere Domain (www.example.com) besucht, wird er wie gewünscht auf die neue Joomla-Website weitergeleitet (unter www.example.com/PORTALsite). ABER, wenn Sie zu www.example.com/index.php (der alten Homepage der WordPress-Website) gehen, wird es auch auf das neue Unterverzeichnis der neuen Joomla-Website (www.example.com/PORTALsite) umgeleitet. Wir wollen nicht, dass das passiert. Wir wollen es so, dass, wenn direkt auf die Datei index.php zugegriffen wird, diese weiterhin funktioniert (um den alten WordPress-Inhalt intakt zu halten).

Wir wollen nur Anfragen an den Domain-Namen selbst,www.example.com, um zu www.example.com/PORTALsite umzuleiten. Aber wir brauchen alle anderen Dateien und Unterverzeichnisse, einschließlich www.example.com/index.php, um weiterhin zu funktionieren (so dass Leute immer noch auf den gesamten Inhalt der alten WordPress-Website zugreifen können, sowie auf zahlreiche statische Dateien) Seiten).

Alle Dateien und Unterverzeichnisse im Stammverzeichnis(www.example.com/) funktioniert immer noch so, wie wir es wollen, aber nur die alte Homepage der WordPress-Website (unter www.example.com/index.php) wird auch auf die neue Website unter www.example.com/ weitergeleitet. PORTALsite (zusammen mit Anfragen für den Domain-Namen selbst. Www.example.com) Der obige Code ist SEHR nah dran, so zu arbeiten, wie wir es wünschen.

Ich schätze das Fachwissen hier bei StackOverflow und freue mich über jede Hilfe, die wir erhalten können. Vielen Dank im Voraus!

UPDATE: Dies ist der Code in unserer HTACCESS-Datei: (verwendet "example.com" statt True Domain Name)

RewriteEngine on
RewriteRule ^$ http://www.example.com/PORTALsite [R=301,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Angesichts der folgenden Antworten auf Anubhava sollte sein Code funktionieren, sobald WordPress aufhört, die "index.php" von der URL zu entfernen. Danke Anubhava! Hier ist die ganze Datei.

Antworten:

2 für die Antwort № 1

Ersetze diese Regel:

RewriteRule ^$ http://www.example.com/PORTALsite [R=301,L]

mit diesem:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}s/+[s?]
RewriteRule ^$ /PORTALsite [R=301,L]
  • Stellen Sie sicher, dass dies die erste Regel in Ihrem Wordpress .htaccess ist
  • Stellen Sie sicher, dass Sie in einem anderen Browser testen, um 301 Caching-Probleme zu vermeiden
  • Ändern Sie die Permalink-Einstellung von WP, um Ihre BLOG / Home-URLs zu erstellen http://domain.com/index.php Anstatt von http://domain.com/