Moin,
Der coole URI ist ja echt ein recht cooler (und vorallem simpler?) Zeitgenosse, kommt bei mir aber leider nicht klar:
Habe Tutorial von http://blog.undkonsorten.com/cooluri-real-url-seiten-ausblenden-seo durchgemacht. Habe dabei die Standard-XML-Konfigdatei von CoolURI verwendet, ohne die Einstellungen zu verändern. Auch habe ich die .htaccess von o.g. Tutorial verwendet, welche wie folgt lautet:
RewriteEngine On
RewriteRule ^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)$ - [L]
RewriteRule ^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
RewriteBase /
Ich kann den Root-Pfad (http://server/), sowie die erste Ebene (also bspw. http://server/about/) öffnen, bzw. über Links dort hingelangen. Klicke ich aber ab der zweiten Ebene (also in /about/) auf einen Link, der auf bspw. /about/mich/) verweist, so kriege ich eine Typo3-Fehlermeldung namens "Error! Reason: "about/mich/" could not be found, closest page matching is about/".
Wat mach ich falsch? Mach ich wat falsch?
Habe zur Entwicklung übrigens XAMPP im Einsatz, wo ich allein im httpd.conf die Zeile "LoadModule rewrite_module modules/mod_rewrite.so" de-kommentiert habe (also die Raute raus, damit aktiviert wird) geändert habe.
Danke für eure Hilfe!
Eazy
hi,
da ich den gleichen Fehler hatte wie du..
hier mal meine CoolUri XML
<?xml version="1.0" encoding="utf-8"?>
<cooluri>
<cooluris>1</cooluris>
<cache>
<usecache>1</usecache>
<params2cool>
<checkforchangeevery>0</checkforchangeevery>
</params2cool>
<cool2params>
<translateifnotfound>0</translateifnotfound>
<oldlinksvalidfor>365</oldlinksvalidfor>
</cool2params>
<cacheparams>0</cacheparams>
<pagenotfound>
<status>HTTP/1.0 301 Moved Permanently</status>
<behavior type="redirect">page-not-found.html</behavior>
</pagenotfound>
</cache>
<pagepath>
<table>pages</table>
<id>uid</id>
<title>subtitle,title</title>
<connection>pid</connection>
<additionalWhere><![CDATA[ AND is_siteroot<>1 ]]></additionalWhere>
<start>
<param>pid</param>
<value>0</value>
</start>
<idconstraint>
<match>^[0-9]+$</match>
</idconstraint>
<saveto>id</saveto>
<default>0</default>
<allparamconstraints> <!-- constraint -->
<type>int</type>
<compare>gt</compare>
<value>0</value>
</allparamconstraints>
<userfunc>tx_cooluri->getPageTitle</userfunc>
<urlize>1</urlize>
</pagepath>
<uriparts>
<part>
<parameter>param[key]</parameter>
<lookindb>
<to>SELECT title FROM table WHERE uid=$1</to>
<urlize>1</urlize>
</lookindb>
</part>
<part>
<parameter>tx_ttnews[tt_news]</parameter>
<lookindb>
<to>SELECT title FROM tt_news WHERE uid=$1</to>
<!-- if you have news items in different languages in one folder, use this sql -->
<!-- to>SELECT title FROM tt_news WHERE (uid=$1 or l18n_parent=$1) AND sys_language_uid={L=0}</to -->
<translatetoif>
<match>^[0-9]+$</match>
</translatetoif>
<urlize>1</urlize>
<t3conv>1</t3conv>
</lookindb>
</part>
<part>
<parameter>tx_eeblog[showUid]</parameter>
<lookindb>
<to>SELECT subject FROM tx_eeblog_maintable WHERE uid=$1</to>
<translatetoif>
<match>^[0-9]+$</match>
</translatetoif>
<t3conv>1</t3conv>
</lookindb>
</part>
</uriparts>
<predefinedparts>
<part>
<parameter>tx_ttnews[backPid]</parameter>
</part>
<part>
<parameter>cHash</parameter>
</part>
<part>
<parameter>tx_eeblog[pointer]</parameter>
</part>
<part>
<parameter>tx_eeblog[backPID]</parameter>
</part>
<part>
<parameter>no_cache</parameter>
</part>
</predefinedparts>
<valuemaps>
<valuemap>
<parameter>L</parameter>
<value key="">0</value>
<value key="en">1</value>
</valuemap>
</valuemaps>
<paramorder>
<param>L</param>
</paramorder>
<removetrailingslash>0</removetrailingslash>
</cooluri>
<removetrailingslash>0</removetrailingslash> // Sorgt das am ende kein / entfernt wird!! könnte nämlich wie bei mir sein, das dein server das nicht zu lässt...
well done
marc
bei mir macht nur Rewrite Base / ein Problem -> darf also nicht in die .htaccess
Ansonsten debugging:
Meine Funktionierende cooluri.xml ist ein Merge der standard xml datei sowie der xml Datei aus der CoolUri Doku (Google Doks) und sieht wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?>
<cooluri>
<urlsuffix>.html</urlsuffix>
<removetrailingslash>1</removetrailingslash>
<cooluris>1</cooluris>
<cache>
<usecache>1</usecache>
<params2cool>
<checkforchangeevery>1</checkforchangeevery>
</params2cool>
<cool2params>
<translateifnotfound>0</translateifnotfound>
<oldlinksvalidfor>365</oldlinksvalidfor>
</cool2params>
<cacheparams>0</cacheparams>
<pagenotfound>
<status>HTTP/1.0 301 Moved Permanently</status>
<behavior type="redirect">page-not-found.html</behavior>
</pagenotfound>
</cache>
<pagepath>
<table>pages</table>
<id>uid</id>
<title>tx_realurl_pathsegment,title,subtitle,alias</title>
<connection>pid</connection>
<additionalWhere><![CDATA[ AND is_siteroot<>1 ]]></additionalWhere>
<start>
<param>pid</param>
<value>0</value>
</start>
<idconstraint>
<match>^[0-9]+$</match>
</idconstraint>
<saveto>id</saveto>
<default>0</default>
<allparamconstraints> <!-- constraint -->
<type>int</type>
<compare>gt</compare>
<value>0</value>
</allparamconstraints>
<userfunc>tx_cooluri->getPageTitle</userfunc>
<urlize>1</urlize>
<t3conv>1</t3conv>
</pagepath>
<removeparts>
<part>fileadmin</part>
<part>typo3</part>
<part>typo3conf</part>
<part>typo3temp</part>
</removeparts>
<uriparts>
<part>
<parameter>param[key]</parameter>
<lookindb>
<to>SELECT title FROM table WHERE uid=</to>
<urlize>1</urlize>
</lookindb>
</part>
<part>
<parameter>tx_ttnews[tt_news]</parameter>
<lookindb>
<to>SELECT title FROM tt_news WHERE uid=$1</to>
<!-- if you have news items in different languages in one folder, use this sql -->
<!-- to>SELECT title FROM tt_news WHERE (uid= or l18n_parent=) AND sys_language_uid={L=0}</to -->
<translatetoif>
<match>^[0-9]+$</match>
</translatetoif>
<urlize>1</urlize>
<t3conv>1</t3conv>
</lookindb>
</part>
<part>
<parameter>tx_eeblog[showUid]</parameter>
<lookindb>
<to>SELECT subject FROM tx_eeblog_maintable WHERE uid=$1</to>
<translatetoif>
<match>^[0-9]+$</match>
</translatetoif>
<t3conv>1</t3conv>
</lookindb>
</part>
</uriparts>
<predefinedparts>
<part>
<parameter>tx_ttnews[backPid]</parameter>
</part>
<part>
<parameter>cHash</parameter>
</part>
<part>
<parameter>tx_eeblog[pointer]</parameter>
</part>
<part>
<parameter>tx_eeblog[backPID]</parameter>
</part>
<part>
<parameter>no_cache</parameter>
</part>
</predefinedparts>
<valuemaps>
<valuemap>
<parameter>L</parameter>
<value key="">0</value>
<value key="de">1</value>
<value key="es">2</value>
</valuemap>
</valuemaps>
<paramorder>
<param>L</param>
</paramorder>
</cooluri>
gruß
Info
ich hatte das selbe problem mit der ersten ebene in realurl.
Lösung war: RewriteBase/ Pfad anpassen!
Also ich hatte dieses Problem mit mehreren Menüebenen ebenfalls.
Meine Konfig sah vor, ohne endenden "/" und dafür mit Endung .html
Bei mir kam auch nicht die von mir in CoolURI konfigurierte 404-Seite bei einem Aufruf in einer unteren Ebene, sondern die 404-Seite des Providers. Also lags somit an der .htaccess. Hier dazu nun meine jetzt funktionierende Konfiguration:
.htaccess (kann sein das einige die Zeile "RewriteBase /" rausnehmen müssen):
RewriteEngine On
RewriteBase /
RewriteRule ^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)$ - [L]
RewriteRule ^/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php
und meine CoolUriConf.xml:
<?xml version="1.0" encoding="utf-8"?>
<cooluri>
<cache>
<usecache>1</usecache><!-- READONLY -->
<params2cool>
<!-- how often (in days) should be links updated (Typo3 cache needs to be cleared) -->
<checkforchangeevery>1</checkforchangeevery>
</params2cool>
<cool2params>
<!-- how many days should old links (those that are redirected to existing) should be kept active -->
<oldlinksvalidfor>365</oldlinksvalidfor>
</cool2params>
<pagenotfound>
<!-- the status has to meet HTTP protocol header -->
<status>HTTP/1.0 301 Moved Permanently</status>
<behavior type="redirect"><![CDATA[404.html]]></behavior>
<!-- possible @type values:
page - will show a file (loaded using file_get_contents)
redirect - will redirect to a certaing URL
message - will output a message
-->
</pagenotfound>
<pagenotfound>
<status>HTTP/1.0 200 OK</status>
<behavior type="redirect"><![CDATA[/]]></behavior>
</pagenotfound>
</cache>
<pagepath>
<!-- first non-empty value will be used -->
<title>tx_realurl_pathsegment,alias,subtitle,title</title>
<saveto>id</saveto><!-- READONLY -->
<default>0</default><!-- READONLY -->
<userfunc>tx_cooluri->getPageTitle</userfunc>
<t3conv>1</t3conv>
</pagepath>
<uriparts>
<part>
<parameter>tx_ttnews[tt_news]</parameter>
<lookindb>
<to>SELECT title FROM tt_news WHERE uid=$1</to>
<!-- if you have news items in different languages in one folder, use this sql -->
<!-- to>SELECT title FROM tt_news WHERE (uid=$1 or l18n_parent=$1) AND sys_language_uid={L=0}</to -->
<t3conv>1</t3conv>
</lookindb>
</part>
<part>
<parameter>tx_eeblog[showUid]</parameter>
<lookindb>
<to>SELECT subject FROM tx_eeblog_maintable WHERE uid=$1</to>
<t3conv>1</t3conv>
</lookindb>
</part>
<!-- you can move cHash to predefineparts to remove in from URL
but first read the manual -->
<part>
<parameter>cHash</parameter>
</part>
<!-- common patterns -->
<!-- this will just add this parameter value to URL -->
<part>
<parameter>paramA</parameter>
</part>
<!-- this will look up parameter value in the database table "sometable" and if found
the value will be transformed using Typo3 csconv into URL-like value.
You can make all sorts of MySQL stuff here, such as add UID into the result:
SELECT CONCAT(title,'-',uid) FROM ...
-->
<part>
<parameter>paramB</parameter>
<lookindb>
<to>SELECT title FROM sometable WHERE uid=$1</to>
<t3conv>1</t3conv>
</lookindb>
</part>
</uriparts>
<predefinedparts>
<part>
<parameter>no_cache</parameter>
</part>
<!-- common patterns -->
<!-- parts defined this way will be removed from URL -->
<part>
<parameter>paramC</parameter>
</part>
<!-- this will prefix a value with "prefix-". Cannot be localized.
-->
<part key="prefix-(.*)" regexp="1">
<parameter>paramD</parameter>
</part>
<!-- if parameter matches value, key will be added to URL
with mutliple values, use valuemaps
-->
<part key="thisWillAppearInUrl">
<parameter>paramE</parameter>
<value>ifParamEMatcesThisValue</value>
</part>
</predefinedparts>
<valuemaps>
<valuemap>
<parameter>L</parameter>
<!-- L is empty of 0, result is empty -->
<value key="">0</value>
<!-- L is 1, result is "en" -->
<value key="en">1</value>
</valuemap>
</valuemaps>
<!-- this will put L param to the first position
for more magic see manual -->
<paramorder>
<param>L</param>
</paramorder>
<!-- READONLY START -->
<cooluris>1</cooluris>
<urlsuffix>.html</urlsuffix>
<removetrailingslash>1</removetrailingslash>
</cooluri>
Hoffe geholfen zu haben,
Huaba
PS: sorry, irgendwie klappte die richtige Formatierung nicht...