Nasazení na hosting nastavení htaccess

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Klainer
Člen | 42
+
0
-

Dobrý den,
mám problém s nasazením webu na hosting. Aplikaci jsem nahrál na ftp do složky: WWWRoot ,
adresářová struktura aplikace uvnitř WWWRoot vypadá takhle:
/app
/css
/images
/js
/libs
/log
/temp
/www
/index.php
/.htaccess

Když aplikaci spustím na adrese www.mojedomena.cz/www/ tak mi vše funguje. Ale chtěl jsem ať stránka hned funguje když přejdu na www.mojedomena.cz proto jsem zkopíroval vše co bylo v adresáři www do nadřazené složky a upravil index.php … Hlavní stránka se spustí, ale odkazy nefungují.

Soubor index.php ve WWWRoot vypadá takhle:

<?php

// uncomment this line if you must temporarily take down your site for maintenance
// require '.maintenance.php';

// absolute filesystem path to the web root
define('WWW_DIR', dirname(__FILE__));

// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . DIRECTORY_SEPARATOR . 'app');

// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . DIRECTORY_SEPARATOR . 'libs');

// absolute filesystem path to the temporary files
define('TEMP_DIR', WWW_DIR . DIRECTORY_SEPARATOR . 'temp');

// load bootstrap file
require APP_DIR . DIRECTORY_SEPARATOR . 'bootstrap.php';
?>

Soubor .htaccess ve WWWRoot vypadá takhle:

# Apache configuration file (see httpd.apache.org/docs/2.2/mod/quickreference.html)

# disable directory listing
#Options -Indexes

# allows symbolic links in this directory
#Options +FollowSymLinks

# configure PHP
# <IfModule mod_php5.c>
#	php_flag register_globals off
#	php_flag zend.ze1_compatibility_mode off
#	php_flag session.auto_start off
# </IfModule>

# enable cool URL
#<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteBase /

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
#</IfModule>

# default charset should be UTF-8
#AddDefaultCharset utf-8

# enable gzip compression
#<IfModule mod_deflate.c>
#	AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript application/javascript application/json
#</IfModule>

# allow combined JavaScript & CSS. Inside of script.combined.js you could use <!--#include file="script.js" -->
#<IfModule mod_include.c>
#	<FilesMatch "\.combined\.(js|css)$">
#		Options +Includes
#		SetOutputFilter INCLUDES
#	</FilesMatch>
#</IfModule>

Ještě bych dodal, chybku co vyhazuje server:

Server Error in Application "16239 - V012060"
Internet Information Services 7.0
Error Summary
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Detailed Error Information
Module	IIS Web Core
Notification	MapRequestHandler
Handler	StaticFile
Error Code	0x80070002
Requested URL	http://www.mojeurl.cz:80/produkt/
Physical Path	d:\v012060\mojeurl.cz\WWWRoot\produkt\
Logon Method	Anonymous
Logon User	Anonymous

Zkoušel jsem to dělat podle návodu https://doc.nette.org/…ubleshooting ale neúspěšně.
Děkuji za rady !
Používám Nette Framework 2.0.3 pro PHP 5.3 nebo 5.4

Editoval Klainer (18. 7. 2012 10:31)

jtousek
Člen | 951
+
0
-

První věc co v těchto případech zkouším je odkomentovat respektive zakomentovat RewriteBase.

EDIT: Co znamená „odkazy nefungují“? Jaký odkaz se vygeneruje a jaký by se měl vygenerovat?

Editoval jtousek (18. 7. 2012 10:33)

Klainer
Člen | 42
+
0
-

Zakomentovat RewriteBase jsem zkoušel, ale nic se nezměnilo. Když zadám adresu http://www.mojeurl.cz/produkt/ tak to nefunguje (vyhazuje to zmíněnou chybku), když zadám adresu http://www.mojeurl.cz/www/produkt/ tak je vše v pořádku, jak docílit toho aby tam nemuselo být to www ?

llook
Člen | 407
+
0
-
Klainer
Člen | 42
+
0
-

V mém příspěvku úplně dole jsem ten návod zmínil, bohužel mi to nefungovalo, tak píšu sem. Možná jsem udělal něco špatně, každopádně netuším co. Zkoušel jsem upravit mod rewrite podle toho návodu ale žádná reakce

EDIT: možná je to tim, že aplikace hostuje na windows serveru … Ale zkoušel jsem test požadavku a vše je ok.

Editoval Klainer (18. 7. 2012 10:46)

jtousek
Člen | 951
+
0
-

Podle „Module IIS Web Core“ ti to asi běží na windows takže místo .htaccess musíš upravit web.config.

Klainer
Člen | 42
+
0
-

Mohl bych poprosit o radu jak na to ?
Vypadá takhle:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

	<system.web>

		<compilation
			tempDirectory="P:\v012060\">
		</compilation>

		<customErrors
			mode="On">
		</customErrors>

    </system.web>

</configuration>

Vyřešeno – upravený od hostingu:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

	<system.web>

		<compilation tempDirectory="P:\v012060\">
		</compilation>

		<customErrors mode="On">
		</customErrors>

    </system.web>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$" negate="true" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>

</configuration>

EDIT: Vyřešeno, zavolal jsem na podporu hostingu a ty vše nějakým způsobem zařídili :)… Takže děkuji za rady !

Editoval Klainer (18. 7. 2012 12:06)