mod_rewrite RewriteRule .phtml zu .html

Alle installationsbezogenen Probleme hier posten. Dies sollte die erste Anlaufstelle bei Problemen sein.
Post Reply
gent
Posts: 163
Joined: Tue 16. Dec 2003, 13:51
Location: Berlin

mod_rewrite RewriteRule .phtml zu .html

Post by gent »

Beim updaten eines alten phpwcms ist mir aufgefallen, das die RewriteRule nun die Endung .html statt wie bisher .phtml benutzt.
Nach dem update des systems laufen dann die google-treffer ins leere, es sei denn man schreibt noch diese RewriteRule in die .htaccess rein:

Code: Select all

RewriteRule ^(.*)\.phtml$ $1.html [R=permanent,L]
Ich bin kein SEO, aber ich glaube das müsste google "beibringen", das die Dateiendung dauerhaft geändert wurde. Zugleich werden Sucher auf die richtige Seite geleitet in dem die URL im Browser umgeschireben wird. Bookmarks funktionieren auch weiterhin.
nameless1
Posts: 878
Joined: Sun 27. Apr 2008, 23:22

Re: mod_rewrite RewriteRule .phtml zu .html

Post by nameless1 »

Das wurde hier mal lanciert. Ist ggf. das gleiche?

Code: Select all

RewriteRule ^([^.]+).phtml$ /$1.html [QSA,L]
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: mod_rewrite RewriteRule .phtml zu .html

Post by Oliver Georgi »

nichts zusätzlich verbiegen!!!

Code: Select all

$phpwcms['rewrite_ext'] = '.phtml';

Code: Select all

# PHP: These settings are recommend - check phpinfo() before try these
#	register_globals ON
#	php_flag magic_quotes_gpc Off
# 	php_flag magic_quotes_runtime Off
#	php_flag register_globals Off

#Sometimes neccessary to add those
#	AddType application/x-javascript .js
#	AddType text/css .css

# Options:
#	Options +FollowSymlinks
#	AcceptPathInfo On

# Rewrite:
<IfModule mod_rewrite.c>

	RewriteEngine On

	DirectoryIndex index.html index.php 

# Use RewriteBase - always start in Document Root
# If installed in subfolder see the ReWrite Rule section
	RewriteBase /

# Ignore
	RewriteRule $1 !^(include|img|template|picture|filearchive|content|robots\.txt|favicon\.ico)
	RewriteRule ^index\.php$ - [L]

	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d


# Installed in Document Root www.example.com/
	RewriteRule ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.html$ /index.php?id=$1,$2,$3,$4,$5,$6&%{QUERY_STRING}
	RewriteRule ^(.+)\.phtml$ /index.php?$1&%{QUERY_STRING}

# Installed in Subfolder www.example.com/subfolder/
#	RewriteRule ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.html$ /subfolder/index.php?id=$1,$2,$3,$4,$5,$6&%{QUERY_STRING}
#	RewriteRule ^(.+)\.phtml$ /subfolder/index.php?$1&%{QUERY_STRING}


</IfModule>
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
gent
Posts: 163
Joined: Tue 16. Dec 2003, 13:51
Location: Berlin

Re: mod_rewrite RewriteRule .phtml zu .html

Post by gent »

Oliver Georgi wrote:nichts zusätzlich verbiegen!!!
Na, nicht das ich falsch verstanden werde,..
Ich möchte den Wechsel auf .html mitmachen und nicht weiterhin die Endung .phtml benutzen.
Ich möchte mit obigem Rewrite nur erreichen, das die Links aus den google-Suchergebnissen nicht auf einer 404-Seite landen, sondern ordentlich mit 301 beantwortet werden.
User avatar
Oliver Georgi
Site Admin
Posts: 9888
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: mod_rewrite RewriteRule .phtml zu .html

Post by Oliver Georgi »

Dann musst Du es tatsächlich noch mal gesondert abfangen und auch den Permanent Redirect an den Zugreifenden senden, damit z.B. Google das mitbekommt und dann zukünftig die .html im Index aufnimmt

Müsste also etwa so aussehen:

Code: Select all

# PHP: These settings are recommend - check phpinfo() before try these
#   register_globals ON
#   php_flag magic_quotes_gpc Off
#    php_flag magic_quotes_runtime Off
#   php_flag register_globals Off

#Sometimes neccessary to add those
#   AddType application/x-javascript .js
#   AddType text/css .css

# Options:
#   Options +FollowSymlinks
#   AcceptPathInfo On

# Rewrite:
<IfModule mod_rewrite.c>

   RewriteEngine On

   DirectoryIndex index.html index.php 

# Use RewriteBase - always start in Document Root
# If installed in subfolder see the ReWrite Rule section
   RewriteBase /

# Ignore
   RewriteRule $1 !^(include|img|template|picture|filearchive|content|robots\.txt|favicon\.ico)
   RewriteRule ^index\.php$ - [L]

   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d


# Installed in Document Root http://www.example.com/
   RewriteRule ^(.+)\.phtml$ /$1.html [QSA,L,R=301]
   RewriteRule ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.html$ /index.php?id=$1,$2,$3,$4,$5,$6&%{QUERY_STRING}
   RewriteRule ^(.+)\.phtml$ /index.php?$1&%{QUERY_STRING}

# Installed in Subfolder http://www.example.com/subfolder/
#   RewriteRule ^(.+)\.phtml$ /subfolder/$1.html [QSA,L,R=301]
#   RewriteRule ^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.html$ /subfolder/index.php?id=$1,$2,$3,$4,$5,$6&%{QUERY_STRING}
#   RewriteRule ^(.+)\.phtml$ /subfolder/index.php?$1&%{QUERY_STRING}

</IfModule>
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
Post Reply